我试图理解random
图书馆工作的原则。
我考虑一些情况:
1)我的值为b
,其值0
或1
的概率为0.5
。
我知道,我可以用
numpy.random.choice(numpy.arange(0, 2), p=[0.5, 0.5])
我想了解,选择一些值会执行哪些步骤? 它将这一部分分开并得到随机值? 它是如何发生的?
2)或者如果我有,可能是一个清单。 lst = [1, 4, 7, 3, 254, 6, 2, 7, 3123, 454657, 34, 565, 99]
我可以通过这种方式来做到这一点
random.choice(lst))
但我也想了解,决定期间会发生什么?
答案 0 :(得分:4)
如果您想完全了解它的工作原理,您应该尝试打开该模块。为此,您可以在python解释器中使用:
>>>import numpy
>>>help(numpy)
这将显示有关该文档的一些信息。您可以找到您想知道的功能并阅读代码以了解其工作原理。我希望这有帮助。
关于numpy的一些更复杂的信息也在这个链接上:https://docs.scipy.org/doc/numpy-1.10.1/reference/
请记住,这不是真正随意的。只是伪随机。该代码使用伪随机数生成器生成随机数。
答案 1 :(得分:2)
Python使用Mersenne Twister作为核心生成器。它产生53位精度浮点数,周期为2 ** 19937-1。 C中的底层实现既快又线程安全。 Mersenne Twister是现存最广泛测试的随机数发生器之一。但是,完全确定性,它不适合所有目的,并且完全不适合加密目的.Python实际上并不生成随机数:它从操作系统获取它们,操作系统有一个特殊的驱动程序从各种真实中收集熵-world来源,例如击键和磁盘搜索之间的时间变化。 更多信息可以在python文档中找到。