-
-
[讨论]说说随机函数
-
发表于:
2014-11-22 21:36
5496
-
随机函数的结果是由某种算法计算出的数值,设定一个种子后,每次调用随机函数就可以取得一个数值,这是由于它用本次的数值作为下次调用的种子,所以如果连续调用可以有源源不断的输出,所得结果称为随机序列数组,显然这些数组元素之间是有关系的,这也是随机函数的弱点,表现是输出的“随机数”随机性较差,本来它就不是随机的所以得到的数组被称为伪随机数组。
人们造出随机函数目的是得到随机数,尽管是伪随机数组,也尽量选择让其分布较为均匀,希望数据较多时,元素的出现次数和在数组中的分布是近似均匀的,也确实发现了许多性能优良的随机函数。
而我们更希望得到元素之间没有关系的数组,也就是随机性更好的数组。其实这并不困难,加工一下伪随机序列就能做到这一点,不用借助其它运算方法或数学公式利用手头的资源就可以达到目的,方法是对数组进行随机排序,利用数组本身的随机性对数组进行随机排序就可以办到,其它方法就更多了,例如利用其它的随机函数来控制随机排序等。这样做出的随机数组,是全程可控制的,虽然控制不了数值的多少,但只要形成方式一致就可以复现同样的数组。用这些数组作为密钥也是可以胜任的。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!