一.Random 類
Random類默認的無參構造函數可以根據當前系統時鐘為種子,進行一系列算法得出要求范圍內的偽隨機數.
12 | Random rd = new Random(); int i = rd.Next(); |
這種隨機數可以達到一些要求較低的目標,但是如果在高并發的情況下,Random類所取到的系統時鐘種子接近甚至完全一樣,就很有可能出現重復,這里用循環來舉例
12345 | for ( int i = 0; i < 10; i++) {
Random rd = new Random(); //無參即為使用系統時鐘為種子
Console.WriteLine(rd.Next().ToString()); } |
這個例子會輸出10個相同的"隨機數".
突顯出的問題:因為Random進行偽隨機數的算法是固定的,所以根據同一個種子計算出的數字必然是一樣的.而以當代計算機的運行速度,該循環幾乎是在瞬間完成的,種子一致,所以會出現10次循環輸出同一隨機數的情況.
新聞熱點
疑難解答