播种0.0到1.0均匀伪随机生成器,其值超出范围

时间:2015-07-25 20:05:27

标签: python random

编辑:

random.random()返回0.0到1.0之间的值

如何播种超出这些界限(0.0-1.0)的数字?维基页面说种子用于“初始化”生成器。发电机对种子做了什么来使它保持在这些范围内?

我不清楚你如何使用10000这样的大#来初始化一个将值从0.0返回到1.0的函数。

1 个答案:

答案 0 :(得分:2)

random.random()会返回0.01.0的值,但它基于Mersenne Twister算法,这是一个完全使用整数的伪随机数生成器。调用random.random()时,将从整数数据生成该范围内的浮点值。

根据random.seed()的文档,当种子是int时,它直接用作梅森捻线虫的种子。整数作为种子起作用,因为底层算法适用于整数。

您可能会对

的陈述感到困惑
  

几乎所有模块功能都依赖于基本功能random(),...

这似乎指的是两件事:

  1. random中有很多函数可以返回浮点数。从逻辑上讲,这些都基于random.random()
  2. 旧版本的Python使用random.random()来实现random.randrange()random.randint()。与默认实现一样,不提供getrandbits()random.Random子类也会这样做。