Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么是伪随机?_Python_Random - Fatal编程技术网

Python 什么是伪随机?

Python 什么是伪随机?,python,random,Python,Random,我正在阅读随机模块的文档,注意到它说的是伪随机,而思想不是伪意味着伪,所以我想知道它说的是什么意思 例如: import random print random.randint(1,2) print random.randint(1,3) 这是否仍然意味着第一个print语句有50%的几率打印1,50%的几率打印2 第二个print语句有33%的几率打印一个语句,33%的几率打印2个语句,以此类推 如果不是,那么伪随机数是如何产生的?要产生真正的随机性,需要专门的硬件来测量随机事件,例如放射

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

例如:

import random

print random.randint(1,2)
print random.randint(1,3)
这是否仍然意味着第一个print语句有50%的几率打印1,50%的几率打印2

第二个print语句有33%的几率打印一个语句,33%的几率打印2个语句,以此类推


如果不是,那么伪随机数是如何产生的?

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


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

要产生真正的随机性,需要专门的硬件来测量随机事件,如放射性衰变(随机)或布朗运动(也基本上是随机的)。大多数计算机显然没有这些,因此你必须使用一种非常复杂、均匀分布、难以预测的“伪随机”算法,该算法以一个由当前时间戳等确定的数字开始。只要你小心不要播种,这种算法对于需要“随机性”的标准用例来说已经足够好了两个具有相同时间戳的随机数生成器(例如,在不同线程上同时启动它们),这将使它们执行相同的操作。这种随机数生成器的一个常见示例是Mersenne Twister:


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

有什么是真正随机的吗?我想以前也有人问过类似的问题。@wazy@NullUserException谢谢你的笑声。应该把这作为答案之一,呵呵。@NullUserException哈哈,解释得很好!有什么是真正随机的吗?我想以前也有人问过类似的问题。@wazy@NullUserException谢谢你r笑声。应该是其中的一个答案,呵呵。@NullUserException哈哈,解释得很好!这让我说我做了
random.randint(1,2)
将与掷硬币一样?@Christian Careaga我们谈论的是什么类型的硬币?我们谈论的是在现实生活中实际掷硬币,这取决于两面的重量、人如何决定掷硬币、硬币从哪一边开始、风、气压等?还是理想化的真正随机的硬币它的返回总是随机和不可预测的?因为它既不象两者,但它试图像后者一样,尽可能接近,而没有真正的随机性源。@Patashu也许放射性衰变也不是真正的随机,可能是我们还不能预测它。伪随机算法的一个非常简单的例子可能是:
def prng(x):return(x*214013+2531011)%math.pow(2,32)
-其中x是您的种子。您会注意到相同的种子会产生相同的结果。@invert:even(受启发)。这是因为我做了
random.randint(1,2)
将与掷硬币一样?@Christian Careaga我们谈论的是什么类型的硬币?我们谈论的是在现实生活中实际掷硬币,这取决于两面的重量、人如何决定掷硬币、硬币从哪一边开始、风、气压等?还是理想化的真正随机的硬币它的返回总是随机和不可预测的?因为它既不象两者,但它试图像后者一样,尽可能接近,而没有真正的随机性源。@Patashu也许放射性衰变也不是真正的随机,可能是我们还不能预测它。伪随机算法的一个非常简单的例子可能是:
def prng(x):return(x*214013+2531011)%math.pow(2,32)
-其中x是您的种子。您会注意到相同的种子产生相同的结果。@invert:even(受启发)。