2015-11-21 71 views
1

我試圖用Next()NextDouble()方法使用「隨機」類生成隨機數。如何在C#中生成隨機數字?

當我運行程序時,我有不同的數字。

但我每次運行它時都會看到相同的數字。 怎麼辦?

+7

顯示您的代碼! –

+2

您是否閱讀過右邊的相關專欄?特別是http://stackoverflow.com/questions/767999/random-number-generator-only-generating-one-random-number?rq=1 – Steve

+0

'重複'和兩個答案都是__wrong__,imo。您需要確保在創建時理解您的選項,即爲[隨機](https://msdn.microsoft.com/en-us/library/system.random%28v=vs.110%29.aspx)對象。這兩個構造函數爲您提供了創建__repeatable或non-repeatable__序列的選擇。如果您希望每次運行程序時都有不可重複的序列,請使用__parameterless構造函數___! – TaW

回答

1
Random rnd = new Random(); 
int month = rnd.Next(1, 13); // creates a number between 1 and 12 
int dice = rnd.Next(1, 7); // creates a number between 1 and 6 
int card = rnd.Next(52);  // creates a number between 0 and 51 

如果您要創建多個隨機數,您應該保留Random實例並重用它。如果你創建新實例的時間太近,它們將產生相同的一系列隨機數,因爲隨機發生器從系統時鐘中播種。

你可以看到原始帖子在stackoverflow here。 爲了提高可視性,您必須在發佈後發佈代碼。

+0

這是正確的,但不回答問題。 – TaW