【发布时间】:2021-12-19 18:34:32
【问题描述】:
一位我不再联系的朋友曾经告诉我以下内容:
使用那个库(python 的随机)你可以选择一个种子 如果你在种子时给它 表示随机生成的数字将始终相同 你在哪台电脑上运行它
所以我尝试对此进行测试,因为这是我需要的,所以在所有计算机上都是相同的,并且每次有人调用它(这很重要,因为我正在研究区块链 NFT,信任在这里很重要)
所以我发现了这个:https://machinelearningmastery.com/how-to-generate-random-numbers-in-python/
在那个链接上,有例子:
from random import seed
from random import random
# seed random number generator
seed(1)
# generate some random numbers
print(random(), random(), random())
# reset the seed
seed(1)
# generate some random numbers
print(random(), random(), random())
在 python 的操场上运行,我明白了
(0.417022004703, 0.720324493442, 0.000114374817345) (0.417022004703, 0.720324493442, 0.000114374817345)
但正如您所见,在该网站上,该帖子的创建者得到了以下信息:
0.13436424411240122 0.8474337369372327 0.763774618976614 0.13436424411240122 0.8474337369372327 0.763774618976614
那么为什么它们在所有计算机上都不相同?我正在使用相同的种子。以及如何确保它们是相同的?
【问题讨论】:
-
不同版本的Python?见stackoverflow.com/questions/35231087/…
-
你应该使用 Python 3。
-
什么是“python 游乐场”?
-
当mapping from the seed value to the actual internal state of the generator 因不同机器上的版本而异时,可能会发生这种情况。更可靠的替代方法是使用 getstate/setstate。
标签: python python-3.x random pip