C# Random循環生成隨機數重復問題解決方案


C# Random循環生成隨機數重復問題解決方案
1.當我們通過Random生成隨機數時,習慣的寫法如下:
int a=new Random().Next(0,100);
然后生成一個數據數沒有任何問題,但是代碼修改如下

for(int i=0;i<1000;i++){
    Console.WriteLine(new Random().Next(0,100));
}

問題:你會發現生成的隨機數居然完全一樣。腫么辦呢?


2.解決:之所以會出現這樣的情況是因為C#生成隨機數和計算的時間有關系,如果生成太快就會造成這個問題
解決方案1:
暫停一定時間

for(int i=0;i<1000;i++){
    Console.WriteLine(new Random().Next(0,100));
    Thread.Sleep(100);
}

解決方案2:

for(int i=0;i<1000;i++){
    Console.WriteLine(new Random(Guid.NewGuid().GetHashCode()).Next(0,100));
}

 

結語:個人更偏向於第二種解決方案,因為第一種明顯降低了執行效率


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM