第壹種方式: 使用無參數的Random()構造函數;
默認種子值是使用DateTime.Now.Ticks作為種子值的,如果觸發Random函數間隔時間很短,就有可能造成產生壹樣的隨機數。
第二種方式: 使用RNGCryptoServiceProvider生成種子值;生成速度較慢。
1、Random()?
使用與時間相關的默認種子值,初始化 Random 類的新實例。
2、Random(Int32)?
使用指定的種子值初始化 Random 類的新實例。
參數為種子值,數據類型為Int32,用來計算偽隨機數序列起始值的數字。 如果指定的是負數,則使用其絕對值。
Random類生成隨機數是偽隨機數,所以在Random的內部產生機制中還是有壹定規律的,並非是真正意義上的完全隨機。 如果種子值相同則每次均產生相同的隨機數。
擴展資料
Random 類位於 java.util 包中,主要用於生成偽隨機數。Random 類將 種子數 作為隨機算法的起源數字,計算生成偽隨機數,其與生成的隨機數字的區間無關。
創建 Random 實例時,若沒有指定種子數,則會以當前時間作為種子數,來計算生成偽隨機數。擁有相同種子的 Random 實例,在相同次數下,生成的偽隨機數完全相同。
random.nextBoolean():
用於從該隨機數生成器的序列中得到下壹個偽均勻分布的 boolean 值。
random.nextBytes():
用於生成隨機 byte 值並將其放入用戶提供的 byte 數組中,生成的隨機 byte 數等於 byte 數組的長度
百度百科——random()