簡體   English   中英

Random.Next()數字始終在每次運行時提供相同的輸出

[英]Random.Next() Digits always gives the same output every runtime

我知道這里有很多關於隨機的問題,但是它們根本沒有幫助我,它們是關於在單個運行時生成相同的數字,而我的並不是

這是我的代碼。

    Random rnd = new Random(0);
    for (int c = 0; c < arraySize; c++)
        data[c] = rnd.Next();

如果我是第一次運行它。
rnd.Next()的元素將是1559595546,下一個輸出將是1755192844,依此類推,
如果我關閉程序並重新運行,
將會生成相同的一組數字

    data[0] = 1559595546
    data[1] = 1755192844   
and so on,

為什么會這樣? 每當我關閉程序並運行它時,它是否應該生成不同的數字集?

請幫助我理解這一點。

不,您提供的固定種子為0。因此,輸出始終相同。 閱讀有關所使用的構造函數重載的文檔:

http://msdn.microsoft.com/zh-CN/library/ctssatww%28v=vs.110%29.aspx

請特別注意以下聲明:

為不同的Random對象提供相同的種子值會導致每個實例產生相同的隨機數序列。

也許您應該:

 var rnd = new Random(); //no seed

這是因為您提供了種子0,例如

Random = new Random(0); //0 is Seed

如果刪除它,它將根據需要生成不同的隨機數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM