/*
* X(n)=(X(n-l)+X(n-k))%m where l>k>0, and m>0
* where X(0)...X(1) are pre-defined(i.e.They are seed values.)
*
*/题目如上,就是一个变形 斐波拉契数函数 形式,用来产生随机数的。
我的代码如下: public static int LFGs2(int _theFirstLagNumber, int _theSecondLagNumber, int _theModNumber,int _number,params int[] _theSeed)
//_theFirstLagNumber 是第一个滞后数
//_theSecondLagNumber 是第二个滞后数
//_theModNumber 是模数
//_number 是 我要计算的数
//_theSeed 是种子数
//eg:LFGs2(4, 3, 10, 10, 1, 2, 3, 4);
{ if (_number < _theSeed.Length)
{
return _theSeed[_number];
}
else
{
if (_number < _array.Length&& _array[_number] !=-1)
{
return _array[_number];
}
else
{
return (LFGs2(_theFirstLagNumber, _theSecondLagNumber, _theModNumber, _number - _theFirstLagNumber, _array, _theSeed) + LFGs2(_theFirstLagNumber, _theSecondLagNumber, _theModNumber, _number - _theSecondLagNumber, _array, _theSeed)) % _theModNumber;
}
}
}我从X(1)一致算到X(100)的时候,X(100)和更大的数字的时候,需要很长的时间才能计算出结果~~~请哪位朋友可以帮我改进下算法~~~可以让它更快算出来,谢谢~~~
* X(n)=(X(n-l)+X(n-k))%m where l>k>0, and m>0
* where X(0)...X(1) are pre-defined(i.e.They are seed values.)
*
*/题目如上,就是一个变形 斐波拉契数函数 形式,用来产生随机数的。
我的代码如下: public static int LFGs2(int _theFirstLagNumber, int _theSecondLagNumber, int _theModNumber,int _number,params int[] _theSeed)
//_theFirstLagNumber 是第一个滞后数
//_theSecondLagNumber 是第二个滞后数
//_theModNumber 是模数
//_number 是 我要计算的数
//_theSeed 是种子数
//eg:LFGs2(4, 3, 10, 10, 1, 2, 3, 4);
{ if (_number < _theSeed.Length)
{
return _theSeed[_number];
}
else
{
if (_number < _array.Length&& _array[_number] !=-1)
{
return _array[_number];
}
else
{
return (LFGs2(_theFirstLagNumber, _theSecondLagNumber, _theModNumber, _number - _theFirstLagNumber, _array, _theSeed) + LFGs2(_theFirstLagNumber, _theSecondLagNumber, _theModNumber, _number - _theSecondLagNumber, _array, _theSeed)) % _theModNumber;
}
}
}我从X(1)一致算到X(100)的时候,X(100)和更大的数字的时候,需要很长的时间才能计算出结果~~~请哪位朋友可以帮我改进下算法~~~可以让它更快算出来,谢谢~~~
解决方案 »
- “System.InvalidOperationException”类型的异常
- 如何在listview中添加控件?
- 关于formview
- crystalReport邦定现有数据集,为何没有数据显示
- ASP.NET(C#版)请进入 [6241406]
- udp----CILENT如何接受图片 ?SERVER 如何发送图片 ?
- 怎么验证xml标记名是否正确
- 庆祝中国取得32金,高兴,散分!!!!
- webform中如何实现类似winform中的模式窗口?
- 如何把Oracle的Long Raw类型转换为Blob类型?
- C#中的水晶报表CrystalReportViewer控件是否不支持报表对象显示,即不支持crystalReportViewer1.ReportSource = report1(report1是CRAXDDRT.Report对象)吗?9.2版的CRView
- 急呀!新手:关于写不进数据库的问题
up
有情up
本来那个数就是越往后越大的。