如何使用XORShift算法生成随机数

时间:2015-07-12 16:12:06

标签: algorithm random

如何使用XORShift算法生成 96位随机数。运行应用程序后,每按一次“开始按钮”,它将返回一个不同的96位数字。

XORShift算法代码:

unsigned long xor()
{
  static unsigned long y=2463534242;
  yˆ=(y<<13); y=(y>>17); 
  return (yˆ=(y<<5)); 
}

2 个答案:

答案 0 :(得分:2)

此代码应该为每次运行产生不同的值。由于ystatic,因此它的值最初为2463534242.但由于static关键字,该值将保留在内存中,直到程序终止(这有点)一个简化的解释,但它应该为这个问题做)。因此,在第一次运行程序后,y的值与xor()的结果相同。此yy(种子)的初始值,当下次调用xor()时,xor()会在下次运行时生成不同的值。< / p>

答案 1 :(得分:0)

如果我不得不猜测:在运行算法后,您不会重置abcx等的值。因此,算法将为每次运行使用不同的初始值,从而产生观察到的行为。