人造的和天然的随机数

  提起真随机数,人们往往认为:“真正的随机数是使用物理现象产生的:比如掷钱币、骰子、转轮、使用电子元件的噪音、核裂变等等,这样的随机数发生器叫做物理性随机数发生器,它们的缺点是技术要求比较高。      ----百度百科”,这种认识实际是一种偏见,或成见。
  不借助于物理设备也是可以生成真随机数的。所谓真随机数,实际说的是随机数组,真随机数的定义是其元素不可预测,不可重复产生,说现实中真随机数并不存在,也有道理,因为数组一经生成,它就不符合真随机数的定义了,所以说真随机数是一种数据的生成机制,如果一个随机数发生器符合了 1)不可预测 2)不能重复产生它就是个真随机数发生器。
  人作为智慧生物能制造几乎任何东西,例如金刚石,人造的甚至比天然的更纯净更优秀,到了真随机数这里怎么就非用物理性随机数发生器呢?不借助任何硬件设备就不能应用物理原理来生成随机数吗?
  实际运用物理定律人造数组也能是真随机数组,首先数组要有一定的体量太小的数组是无法体现统计学规律的,其次元素是均匀的如果部分元素缺失也是不能成事的,有了以上两点,我们只要对数组的排列进行干预,就能生成新的数组,这一过程称为随机排序,让数组中每个成员都得到随机的排序,可以用循环来完成,例如从第一个元素开始,让其和数组中某一元素进行数值交换,这里需要拼凑一些随机因素来选择和哪一个元素,可以利用循环变量、数组数值、随机函数的代数组合生成一个大数然后模数组长度得到交换位置(就是用生成的大数除以数组长度得到的余数值作为交换的选择序列号),选择序列号的随机性决定了排序随机性的效率,如果随机性不好,则数组由有规律的数组到无规律的数组的变化速度将是缓慢的,试验证明最终都能生成良好的随机数组(笔者前面的帖子做过论述),随机函数在这里不是必须的,但其参与可大为提高效率。
  为什么有此结果呢?实际是利用了热力学第二定律之熵增加原理,在多种因素干预下进行排序,数组只能向着越来越混乱的方向发展,最后达到饱和。所以我们不用物理现象,单纯利用手头的随机因素,随机数据因素就可以高效的生成性能良好的真随机数,成本低效率高胜过物理现象的利用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值