12.微机是啥玩意儿?23(1 / 2)

 只见姚夏在信纸上写到:

 uint mt_seed(uint seed, uint *mt, int n)

 {

 int i;

 memset(mt, 0x00, n*sizeof(uint));

 for(i=1; i

 {

 mt[i]= MT_199332_F *(mt[i-1]^mt[i-1]>>(MT_199332_W-2))+i;

 }

 return mt[n-1];

 }

 ……

 (前面一大堆宏和结构体定义我就不写了,大家看着是个意思就行。)

 这是用C语言写的,当前部分是用来编写随机数种子函数。

 时隔这么多年,姚夏没有想到居然还会有用手写代码的时候。

 要知道从当年做完华为和鹅厂的笔试题之后,姚夏就没有这么干过了。

 没有开发工具,手写代码真的很麻烦。

 姚夏用了两页信纸,详细描述了梅森旋转随机数生成算法。

 为什么选择梅森旋转,主要是基于几个方面的原因。

 首先,现在是1986年,距离1999年的Intel 在其 i810 芯片组上集成了芯片级的随机数生成器,从而使得新的服务器都自带热噪声的本地源随机数生成能力——真正的随机数生成器这一伟大的发明还有13年的时间。

返回