生器的产生方式和所用到的知识,结构体系是怎样的。
2.分析他们的优点和缺点,能够保留的优点就要尽量用到,如果有不足应该怎样改正,加上自己的理解和题目的要求做一个满意的随机数产生器。
要求:
使用VC++平台,编写一个能产生1024位的随机数发生器,而且随机数还要是足够随机的,并且还要编制一个检验平台,能在该平台上检验该随机数是足够随机的。
设计思路:采用VC++6.0
1.使用VC++实现控件的开发与界面的设计,尽量使外观简单容易实用,输出结果方便易看
2.借鉴其他随机数产生器的产生方法,参阅AES,DES中随机数的产生方法,借鉴出其中的精华,补上自己的构思与想法尽量使随机数不出现重复。
2常见随机数生成方法简析
2.1 迭代取中法
这里在迭代取中法中介绍平方取中法 , 其迭代式如下 :
Xn+1=(Xn^2/10^s)(mod 10^2s)
Rn+1=Xn+1/10^2s
其中, Xn+1 是迭代算子,而 Rn+1 则是每次需要产生的随机数。
第一个式子表示的是将 Xn 平方后右移 s 位,并截右端的 2s 位。
而第二个式子则是将截尾后的数字再
压缩 2s 倍,显然 :0=
迭代取中法有一个不良的性就是它比较容易退化成 0。
2.2 乘同余法
乘同余法的迭代式如下 :
Xn+1=Lamda*Xn