java產生隨機數的幾種方式 一.在j2se里我們可以使用Math.random()方法來產生一個隨機數,這個產生的隨機數是0-1之間的一個double,用時需要int強制轉換,我們可以把他乘以一定的數,比如說乘以100,他就是個100以內的隨機,這個在j2me中沒有。 java.util.Rand ...
java產生隨機數的幾種方式
一.在j2se里我們可以使用Math.random()方法來產生一個隨機數,這個產生的隨機數是0-1之間的一個double,用時需要int強制轉換,我們可以把他乘以一定的數,比如說乘以100,他就是個100以內的隨機,這個在j2me中沒有。
java.util.Random類有兩種方式構建方式:帶種子和不帶種子
1.不帶種子
1 int ran=(int)(Math.random());
*其中Math.random()必須用括弧括起來,否則會返回0,因為先執行int的強制轉換 1 int ran=(int)Math.random();//錯誤示範
2.帶種子
int ran=(int)(Math.random()*10);//0~10之間的數
int ran=(int)(Math.random()*10+5);//產生5~10之間
二.在java.util這個包裡面提供了一個Random的類,我們可以新建一個Random的對象來產生隨機數,他可以產生隨機整數、隨機float、隨機double,隨機long,這個也是我們在j2me的程式里經常用的一個取隨機數的方法。
Random ran=new Random(10);
//nextInt()返回下一個隨機數
ran.nextInt();
其中的10並不會影響產生的隨機數範圍,
ran.nextInt(10);//產生0~10的隨機數
錯誤示範:產生5到10之間的隨機數
ran.nextInt(10)+5;
正確示範:產生10到50之間的隨機數
1 int ran=new Random().nextInt(50)+10;
三.在我們的System類中有一個currentTimeMillis()方法,這個方法返回一個從1970年1月1號0點0分0秒到目前的一個毫秒數,返回類型是long,我們可以拿他作為一個隨機數,我們可以拿他對一些數取模,就可以把他限制在一個範圍之內啦
其實在Random的預設構造方法里也是使用上面第三種方法進行隨機數的產生的