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