1. 程式人生 > >JAVA學習總結之Random類

JAVA學習總結之Random類

Random類產生偽隨機數,它的用法有點意識。

Random rand = new Random();

如果在例項化時沒有傳遞任何引數,那麼Java就會將當前時間作為隨機數生成器的種子,並由此在程式沒一次執行是都產生不同的輸出。而如果在例項化時提供種子,就可以在每次執行程式時都生成相同的隨機數,並且它的輸出是可以驗證的。

(一)  例如:Random rand = new Random();

int k = rand.nextInt()+1;

 此時rand.nextInt() 或者 rand.nextInt(20) ,程式在每次執行時都會產生不同的隨機數。

(二) Random rand = new Random(47);

(47被Bruce Eckel成為魔幻數字)  此時若 int k = rand.nextInt()+1; 每次程式的執行k都會得到相同的值。

 若 int k = rand.nextInt(100)+1;  返回一個偽隨機數,它是取自此隨機數生成器序列的、在 0(包括)和100(不包括)之間均勻分佈的 int 值。nextInt 的常規協定是,偽隨機地生成並返回指定範圍中的一個 int 值。所有可能的 nint 值的生成概率(大致)相同。

此時每次程式執行 k 也會得到相同的值。