Create pseudo-random numbers based on Fibonacci sequence

来源:互联网 发布:c语言预处理命令三种 编辑:程序博客网 时间:2024/05/18 00:06
  1.  import java.util.Vector;
  2. public class LFG {
  3.  public static Vector<Integer> LFGs2(int l, int k, int _theModNumber, int _number,
  4.    int[] _theSeed) {
  5.   // l 是第一个滞后数
  6.   // k 是第二个滞后数
  7.   // _theModNumber 是模数
  8.   // _number 是 我要计算的数
  9.   // _theSeed 是种子数
  10.   // eg:LFGs2(4, 3, 10, 10, 1, 2, 3, 4);
  11.   Vector<Integer>  nums = new Vector<Integer>(_number + _theSeed.length);
  12.   for (int o = 0; o < _theSeed.length; o++) {
  13.    nums.add(o, _theSeed[o]);
  14.   }
  15.   for (int i = _theSeed.length; i < nums.capacity(); i++) {
  16.    nums.add(i,(nums.elementAt(i-l)+nums.elementAt(i-k))%_theModNumber);
  17.    
  18.   }
  19.   
  20.   
  21.   
  22.   return nums;
  23.  }
  24.  public static void main(String[] args) {
  25.   int[] seeds = { 123,4,8,2,7};
  26.   Vector<Integer> all = LFG.LFGs2(211020, seeds);
  27.   for (int m = 0; m < all.size(); m++) {
  28.    if(m<all.size()-1){
  29.     System.out.print(all.elementAt(m)+",");
  30.    }else{
  31.     System.out.print(all.elementAt(m));
  32.    }
  33.   }
  34.  }
  35. }
原创粉丝点击