首页
论坛
专栏
课程

随机函数的周期

sjdkx 2018-7-10 14:29 629
  将随机函数的序列值放入不同单位的数组,周期是不一样的,单位越小则周期越小,举例说明:C语言的rand()函数,如果放到整型数组中其周期是4294967295,放到字节数组中则为16777216,而一般给出的周期是指随机函数给定单位的周期值,但对用户来说,必须知道随机函数当前使用的单位周期才有意义,所以必须实测周期,根据周期 T的定义设 i为序列号,以 i来定位随机函数的输出,序列号 i 和 i+T 处的函数值是相同的,这样你组成大于 T的序列通过搜索就能找出周期 T,一般需要对几个连续的放入单位的函数值进行测量,才能得到准确的 T,如果没有超算,周期又很长这个工作是很费时间的工作。
  周期实际是随机函数的软肋,理想的随机函数的周期应为无穷大,实际是办不到的,掌握了 T的数值,在 T的范围内使用随机函数就能避免其带来的不利影响。


[防守篇]2018看雪.TSRC CTF 挑战赛(团队赛)11月1日征题开启!

最新回复 (1)
sjdkx 2018-9-14 20:07
2

0

用程序测量随机函数的周期,因为不能利用到超算,一般需要很长时间,这时让程序在后台运行,关机设成休眠,下次开机程序继续运行,这样就相当于连续运行了,知道发现周期为止。
返回