没有真正的随机,一切都是伪随机

2012-03-27  金城  2051

没有真正的随机,都是伪随机。一切都是有因果根源的。应用中常常把这个因缘搞的很复杂,看起来像是随机而已。
计算机中常用细微的时钟震荡来产生随机效果。

VB中必须加上 randomize timer 才可以产生以时钟为种子散列值。

C#中 new Random(); 或 new Random(DateTime.Now.Ticks);产生以时钟种子散列值。

以时钟为种子随机值能满足一般的计算需要,但是遇到多线程的程序时往往容易产生重复值。因为多线程用了同一时刻作为种子。例如给会员分配随机密码,在单线程中基本不重复,而在多线程中分配就产生大量的重复密码。其实多线程中还是可以解决的。把线程本身编号再计算进去就可以了。

计算机时钟精度太小有时满足不了随机度,可以加入第三方输入设备来控制随机。

例如可以把输入器植入瀑布下,根据水滴的位置或,随流的冲力来作为随机种子。或用个原子振荡器作为输入设备,获取原子级别的随机序列。

总之所有的随机都是伪随机,都是有精度的。你知道规律了就不是随机,你摸不清规律就是随机,如此可见相对论的伟大了,如此可见因果的伟大了。
目前科技最前沿的伪随机是量子研究。可以常见关于量子、中微子、弦、超光速等的报道。只是这些现象相对于目前的科技力量而言是随机的。

用佛主的话来说是“真空妙有,实相圆明”,佛主没有感受到任何随机现象。