and*_*and 17 python random seed
a)在这种情况下,随机数发生器是否在每次运行时使用系统的时钟(进行种子更改)?
b)种子是否用于生成expovariate(lambda)的伪随机值?
Ale*_*lli 17
"使用来源,卢克!"...... ;-).学习http://svn.python.org/view/python/trunk/Lib/random.py?revision=68378&view=markup会很快让你放心;-).
未设置种子时会发生什么(这是"我是无"的情况):
if a is None:
try:
a = long(_hexlify(_urandom(16)), 16)
except NotImplementedError:
import time
a = long(time.time() * 256) # use fractional seconds
Run Code Online (Sandbox Code Playgroud)
和expovariate:
random = self.random
u = random()
while u <= 1e-7:
u = random()
return -_log(u)/lambd
Run Code Online (Sandbox Code Playgroud)
显然使用与其他方法相同的底层随机生成器,因此受到播种或缺乏它的影响相同(实际上,它还会怎么做? - )
a)它通常使用系统时钟,某些系统上的时钟可能只有ms精度,因此非常快速地播种两次可能会产生相同的值.
seed(self,a = None)从hashable对象初始化内部状态.
Run Code Online (Sandbox Code Playgroud)None or no argument seeds from current time or from an operating system specific randomness source if available.
b)我会想象expovariate,但我找不到任何证据.如果没有,那将是愚蠢的.
| 归档时间: |
|
| 查看次数: |
8760 次 |
| 最近记录: |