一位我不再聯系的朋友曾經告訴我以下內容:
使用該庫(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.00011437548173)
但是正如您所看到的,在該網站上,該帖子的創建者獲得了以下資訊:
0.13436424411240122 0.8474337369372327 0.763774618976614 0.13436424411240122 0.84743373693723627616161677
為什么它們在所有計算機上都不相同呢?我正在使用相同的種子。我如何確保它們相同?
uj5u.com熱心網友回復:
答案是,即使您標記了 Python-3.x,您實際上使用的是 Python 2,并且亂數演算法在 2 和 3 之間變化。
我可以這么說,因為您的print陳述句將值列印為帶括號的元組。Python 3 的列印功能不會發生這種情況。
出于財務目的而依賴亂數演算法的特定實作是很奇怪的。如果您確實需要可重復性,那么您應該嵌入自己的演算法。有幾個 RNG 不難編碼。但是如果演算法需要是可預測的,為什么不直接使用遞增的數字呢?如果你不需要隨機性,那么就不要使用隨機性。
uj5u.com熱心網友回復:
我在 Python 2.3.0(超過 18 歲)和 Python 3.10(最新的,只有一個月大)中都得到了帖子作者的值。
我得到你,如果我用值numpy.randomPython的替代random。
所以我懷疑你沒有說出你的代碼的真相,或者你使用的“python 游樂場”很奇怪。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/349380.html
上一篇:PyQt5如何暫時隱藏主視窗?
