什么是伪随机?

Ser*_*ial 1 python random

我正在阅读随机模块的文档,并注意到它说伪随机和思想不伪意味着假,所以我想知道它是什么意思,当它说

例如:

import random

print random.randint(1,2)
print random.randint(1,3)
Run Code Online (Sandbox Code Playgroud)

这仍然意味着第一个印刷声明有50%的机会打印1和50%的机会打印2

并且第二个打印声明有33%的机会打印一个,33%的机会打印2等.

如果没有,那么伪随机数是如何生成的?

Pat*_*shu 7

要产生真正的随机性,需要专门的硬件来测量随机事件,例如放射性衰变(随机)或布朗运动(也基本上是随机的).大多数计算机显然没有这些,所以相反,你必须使用一个非常复杂,均匀分布,难以预测的"伪随机"算法,该算法以一个由例如当前时间戳确定的数字开始.这种算法对于需要"随机性"的标准用例来说已经足够好了,只要你小心不要为具有相同时间戳的两个随机数生成器(例如在不同线程上同时启动它们)播种,这将使得他们做同样的事情.这种随机数发生器的一个常见例子是Mersenne Twister:http://en.wikipedia.org/wiki/Mersenne_twister

一个提供真正随机值的网站,解释了很多关于随机性和伪随机性的信息,并且有一些关于其随机性的美味统计数据:http://www.random.org/(参见了解更多信息和统计数据)(实际上它似乎依赖于测量混沌系统中的微小波动,例如大气噪声,但统计数据表明它与真正的随机性非常相似,你无法分辨它!)

  • @Christian Careaga我们在谈论什么样的硬币?我们是在谈论在现实生活中物理掷硬币,这是由于双方的重量,人们如何决定翻转它,它开始的哪一方,风,气压等等?还是一个理想化的真正随机的硬币,它总是随机的,不可预测的回归?因为它不是两者之一,但是ATTEMPTS就像后者一样,尽可能接近而没有真正的随机源. (3认同)