Nik*_*ili -1 python random pip python-3.x
一位与我不再有任何联系的朋友曾经告诉我以下内容:
使用该库(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())
Run Code Online (Sandbox Code Playgroud)
在 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-3.x,您实际上使用的是 Python 2,并且随机数算法在 2 和 3 之间变化。
我可以这么说,因为您的print语句将值打印为带有括号的元组。Python 3 的 print 函数不会发生这种情况。
为了财务目的而依赖随机数算法的特定实现是很奇怪的。如果您确实需要可重复性,那么您应该嵌入自己的算法。有几种 RNG 并不难编码。但如果算法需要可预测,为什么不直接使用递增数字呢?如果不需要随机性,那么就不要使用随机性。
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |