首页
社区
课程
招聘
[讨论]说说随机函数
发表于: 2014-11-22 21:36 5496

[讨论]说说随机函数

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

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 478
活跃值: (50)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你还在研究这个。。。。。。
2014-11-22 22:08
0
雪    币: 53
活跃值: (528)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
CryptAcquireContext 这个因该能满足你的需求。
2014-11-22 23:58
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
4
CryptAcquireContext这种低效的垃圾还是不用为好。
2014-11-23 17:05
0
雪    币: 178
活跃值: (224)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
随机性, 在数学上要求制备这样一个系统: 在它的状态空间的每一点都是双曲点。
2014-11-23 20:55
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
6
随机函数只是个工具,实际是要建造一些独立的未知数群,它们之间是线性无关的,符合什么分布无关紧要。最终目的是制作强有力的密钥数组。
2014-11-24 10:40
0
雪    币: 10014
活跃值: (2012)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
7
用上面说的方法可以作出一种超级随机函数,它不同于普通随机函数那种给它种子后每次调用得到一个数值,这种函数给它种子,和一个数目N,它将给你一个有N个成员的数组,这N个数据彼此之间是线性无关的,可以直接作为密钥数组,这样加密文件就方便多了。
2014-11-25 14:53
0
游客
登录 | 注册 方可回帖
返回
//