1. 程式人生 > 其它 >Java兩個隨機函式Math.random()和Random()

Java兩個隨機函式Math.random()和Random()

java中存在兩個隨機函式,它們分別來自java.long.Math.random()和 java.util.Random();其中前者的適用範圍比較小,完全可以被後者取代。

一、java.lang.Math.random()方法的用法
①、方法型別:
public static double random();
此方法是一個無參,double型別返回值的公開靜態方法。

返回一個大於0的double型別資料,該值大於等於0.0且小於1.0,返回的是一個偽隨機選擇數,在該範圍內(幾乎)均勻分佈。

例如:

 1 public class TestRandom{
2 3 public static void main(String[] args){ 4 int sum=0; 5 while(true){ 6 float a=(float)Math.random(); 7 System.out.println(a); 8 sum++; 9 if(sum==10) 10 break; 11 } 12 } 13 }

二、 java.util.Random類用法
①、該類的構造方法:
Random():構造一個無參的隨機數生成器。使用系統時間的毫秒作為預設種子。
Random(long seed):使用 long資料型別的種子構造一個隨機數生成器。
②方法摘要:
boolean nextBoolean():返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分佈的 boolean值。
double nextDouble():返回下一個偽隨機數,它是取自此隨機數生成器序列的、在 0.0 和 1.0 之間均勻分佈的 double 值。
float nextFloat():返回下一個偽隨機數,它是取自此隨機數生成器序列的、在 0.0 和 1.0 之間均勻分佈的 float 值。
int nextInt():返回下一個偽隨機數,它是此隨機數生成器的序列中均勻分佈的 int 值.
int nextInt(int n):返回一個偽隨機數,它是取自此隨機數生成器序列的、在 0(包括)和指定值n(不包括)之間均勻分佈的 int 值。
long nextLong():返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分佈的 long 值。
void setSeed(long seed):使用單個 long 種子設定此隨機數生成器的種子。
注意:如果用相同的種子建立兩個 Random 例項,則對每個例項進行相同的方法呼叫序列,它們將生成並返回相同的數字序列。

 1 public class TestRandom{
 2  
 3     public static void main(String[] args){
 4         int sum=0;        
 5         java.util.Random random=new java.util.Random();
 6         for(int i=0;i<10;i++){
 7             int a=random.nextInt(10);
 8             System.out.print(a+"  ");
 9         }
10
System.out.println(""); 11 for(int i=0;i<10;i++){ 12 int a=random.nextInt(); 13 System.out.println(a); 14 } 15 System.out.println(""); 16 for(int i=0;i<10;i++){ 17 double a=random.nextDouble(); 18 System.out.println(a); 19 } 20 System.out.println(""); 21 for(int i=0;i<10;i++){ 22 boolean a=random.nextBoolean(); 23 System.out.println(a); 24 } 25 System.out.println(""); 26 } 27 }