1. java獲取隨機數
很多朋友都想知道java怎麼獲取隨機數?下面就一起來了解一下吧~
Java中的隨機數的有三種產生方式:
(01). 通過System.currentTimeMillis()來獲取一個當前時間毫秒數的long型數字。
(02). 通過Math.random()返回一個0到1之間的double值。
(03). 通過Random類來產生一個隨機數。
第1種
通過System.currentTimeMillis()來獲取隨機數。實際上是獲取當前時間毫秒數,它是long類型。使用方法如下:
final long l = System.currentTimeMillis();
若要獲取int類型的整數,只需要將上面的結果轉行成int類型即可。比如,獲取[0, 100)之間的int整數。方法如下:
final long l = System.currentTimeMillis();final int i = (int)( l % 100 );
第2種
通過Math.random()來獲取隨機數。實際上,它返回的是0(包含)到1(不包含)之間的double值。使用方法如下:
final double d = Math.random();
若要獲取int類型的整數,只需要將上面的結果轉行成int類型即可。比如,獲取[0, 100)之間的int整數。方法如下:
final double d = Math.random();final int i = (int)(d*100);
第3種
通過Random類來獲取隨機數。
使用方法如下:
(01) 創建Random對象。有兩種方法可以創建Random對象,如下:
Random random = new Random();//默認構造方法Random random = new Random(1000);//指定種子數字
(02) 通過Random對象獲取隨機數。Random支持的隨機值類型包括:boolean, byte, int, long, float, double。
比如,獲取[0, 100)之間的int整數。方法如下: int i2 = random.nextInt(100);
2. java如何產生1-10隨機數
java代碼方法一如下:
int random=(int)(Math.random()*10+1)
java代碼方法二如下:
package bdqn_Empy;
import java.util.Random;
public class Text {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=0;
Random b=new Random();
a=b.nextInt(101);
System.out.println(a);
}
}
可以先通過 random方法生成一個隨機數,然後將結果乘以10。此時產生的隨機數字即為大於等於0小於10的數字。
然後再利用nt方法進行轉換它會去掉小數掉後面的數字即只獲取整數部分,不是四捨五入)。最後即可獲取一個0到9的整數型隨機數字。其實現方法很簡單,就是對原有的 grandom方法按照如下的格式進行變型:(int( Math. Random0*10)即可。
其實我們還可以對這個方法進行擴展,讓其產生任意范圍內的隨機數。至需要將這個10換成n即可,如改為( int(Math. Random0n)。此時應用程序就會產生一個大於等於0小與n之間的隨機數。
如將n設置為5,那麼其就會產生一個0到5之間的整數型的隨機數。如果將這個寫成一個帶參數的方法,那麼只要用戶輸入需要生成隨機數的最大值,就可以讓這個方法來生成制定范圍的隨機數。
3. java中如何以不同概率產生隨機數1-30
Random rm = new Random();
int i = rm.nextInt(18);
int n = 0;
if(i > 8){
n = rm.nextInt(10)+1;
}else if(i > 2&&i <= 8){
n = rm.nextInt(11) + 10;
}else if(i<=2){
n = rm.nextInt(11) + 20;
}
這樣生成的整數n是 3/6的概率在1-10之間,2/6的概率是在10-20之間,1/6的概率是在20-30之間(這種都是偽隨機,但盡量接近概率)
你看看這樣行不行
希望對你有幫助