簡體   English   中英

C#中的隨機數

[英]Random numbers in c#

我用

Random rnd = new Random();
x=rnd.Next(10);

但是每次我得到相同的數字。 如何解決並獲得不同的數字? 告訴我簡單的方法。

謝謝。 對不起,英語不好。

Random的默認構造函數使用當前時間作為其種子。 因此,如果您快速連續地初始化多個Random對象(例如,在循環中),則它們將共享相同的種子。

一次創建您的Random對象並多次使用它,或者預先創建一個種子並使用它來初始化生成器。

MSDN在用於隨機類的MSDN文檔的備注部分中明確解決了該“問題”,其中包括一個示例!

http://msdn.microsoft.com/en-us/library/system.random.aspx

強制性XKCD參考:

http://xkcd.com/221/

確保只使用一次構造函數。 您可以添加種子。

Random rnd  = new Random(DateTime.Now.Millisecond);

然后,您可以像實際操作那樣撥打電話。

x=rnd.Next(10);

但是請確保在循環或類似內容中沒有構造函數和對Next()方法的調用。

暫無
暫無

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

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