随机函数怎么可能真的是随机的?

| 介绍 我知道我将在这个问题上失去很多声誉,并且我也知道它将被标记为不适当,但是我对此感到很好奇,因此,如果有机会,我不会放弃我至少得到一个答案。 题 今天我醒来想:   嘿,如果随机函数是由算法创建的,怎么可能真的是随机的呢? 想一想。在没有内置随机概念的情况下,如何创建一个模拟随机性的函数?我开始思考:   嘿,我要先做一个int数组,然后再做[thing],然后再[thing],然后再做[thing],然后我只选择奇数... ecc 但是似乎更有可能使函数更难以预测选择的内容,而不是真正的随机性。 有可能产生随机性吗?返回随机整数(例如PHP中的
rand()
)的函数如何创建?他们如何模拟随机性?     
已邀请:
通过算法产生所谓的随机数的函数是伪随机数生成器。如果您知道用于生成序列的种子,那么数字是可预测的。序列本身是统计上随机的分布,但不是真正的随机。 存在真正的随机数生成器,其通常包括一些从物理世界中采样随机性的硬件,例如放射性或声噪声。天真的实现方法是对硬盘访问和鼠标移动进行采样。有关实际的RNG,请参见random.org。 必选xkcd条:     
将它们称为伪随机数是有原因的;它们并不是真正随机的。从维基百科:   伪随机数生成器   (PRNG),也称为确定性   随机位产生器(DRBG),
[1]
是   生成序列的算法   近似于   随机数的性质。的   顺序并不是真正随机的   它完全由一个   相对较小的初始   值,称为PRNG的状态。     
如果您需要数学基础,请阅读此开创性著作的第2卷第3章。您可以购买它,以在您的书架上看起来令人印象深刻。 (请记住,大多数购买它的人最终都不会真正阅读它,这是有充分的理由的。它非常密集且非常难于阅读。)简短的答案并不涉及大量困难文本纯粹是通过算法生成的\“ random \”数是伪随机数,也就是说它们是\“足够随机数\”。     
您可能需要查看Wikipedia关于PRNGS的文章-我们在PC上拥有的所有随机数生成器(相当多)是什么。 关于随机数,我认为可以在某个地方完成,这是使用CPU或其他传感器的温度作为其中之一的种子。如果种子是随机的(温度不可能永远完全相同),则序列应尽可能接近随机。     
我通常\“得到毫秒\”并将其划分为伪随机数。这使得它更加随机和不可预测。     

要回复问题请先登录注册