![](/img/trans.png)
[英]What is the maximum number of pseudo-random numbers that can be generated with numpy.random before the sequence begins to repeat?
[英]Are random numbers generated using a quantum integer as its seed considered pseudo-random or truly random?
我總是聽說量子計算機產生的隨機數被認為是“真正隨機的”,而經典計算機產生的隨機數被認為是“偽隨機” 。
如果要使用量子整數作為種子生成隨機數,那么從該種子生成的數字會被視為“偽隨機”還是真正的隨機數? 在任何地方都找不到此說明,歡迎任何解釋。
import random
random.seed(get_my_quantum_number()) #Some quantum integer generated from an API.
random.random() #Is this "pseudo-random" or "truly random" ?
random.random()
使用偽隨機數生成器 (PRNG),它根據定義使用確定性算法並在數學上擴展其輸入。 因此,它生成的數字是偽隨機的,即使它是由量子隨機數生成器或其他一些非確定性源的輸出播種的。
種子是初始化 PRNG 的值,PRNG 可以生成的可能序列的數量取決於 PRNG 的狀態大小和種子的大小。 例如,如果種子或狀態只有 32 位長,那么該 PRNG 最多可能有 2 32 個不同的偽隨機數序列,而不管種子來自何處。
另請參閱以下問題:
在任何情況下,“偽隨機”和“真正隨機”數字之間的區別並不是應用程序關心的(並且您沒有真正指定您想到的應用程序類型)。 相反,一般來說:
secrets
模塊或random.SystemRandom
。numpy.random.Generator
。 例如, random.random()
使用的偽隨機數生成器,Mersenne Twister,不適用於密碼學或信息安全; 它產生的數字並非設計為難以猜測,無論該生成器是如何播種的(無論是通過量子隨機數生成器還是其他方式),情況都是如此。
相比之下,為信息安全設計的偽隨機生成器通常涉及加密哈希函數、分組密碼或流密碼——特別是因為一個目標是使未來的偽隨機數難以猜測,即使生成器的輸出是已知的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.