JAVA API(三) Math類和Random類

 

1.Math類

Math類是數學操做類,提供了一些用於進行數學計算的靜態方法。Math類中有兩個靜態常量PI和E,分別表明數學常量π和e。java

列表中是Math類的一些經常使用方法:算法

方法聲明 功能描述
int abs(int a) 計算a的絕對值
double ceil(double a) 向上取整,求大於參數的最小整數
double  floor(double a ) 向下取整,求小於參數的最大整數
long round(double a) 表示四捨五入,算法爲Math.floor(a+0.5)
double max(double a,double b) 取兩個數的較大值
double min(double a,double b) 取兩個數的較小值
double random() 生成一個0到1之間的隨機數

 

 

 

 

 

 

下面是Math類中一些經常使用方法的例子。dom

Example01.javaspa

public class Example01 {
    public static void main(String[] args) {
        System.out.println("計算絕對值的結果:" + Math.abs(-1));
        System.out.println("求大於參數的最小整數:" + Math.ceil(5.6));
        System.out.println("求小於參數的最大整數:" + Math.floor(-4.2));
        System.out.println("對小數進行四捨五入後的結果:" + Math.round(-4.6));//round()表示四捨五入,算法爲Math.floor(x+0.5)
        System.out.println("求兩個數的較大值: " + Math.max(2.1, -2.1));
        System.out.println("求兩個數的較小值:" + Math.min(2.1, -2.1));
        System.out.println("生成一個大於等於0.0小於1.0的隨機數:" + Math.random());
    }
}

 運行結果以下:3d

 

2.Random類

Random類存在於java.util包中,它能夠在指定的取值範圍內產生隨機數。下面是它的構造方法:code

方法聲明 功能描述
Random() 構造方法,用於建立一個僞隨機數生成器
Random(long seed) 構造方法,使用一個long型的seed種子建立僞隨機數生成器

 

 

 

上面的構造方法中,第一個構造方法是無參的,經過它建立的Random實例對象每次使用的種子是隨機的,所以每一個對象所產生的隨機數不一樣。若是但願建立的多個Random實例對象產生相同序列的隨機數,則能夠在建立對象時調用第二個構造方法,傳入相同的種子便可。下面是構造方法的例子:對象

Example02.javablog

public class Example02 {
    public static void main(String[] args) {
        Random random = new Random();//不傳入種子
        //隨機產生10個【0,100】之間的整數
        for (int i = 0; i < 10; i++) {
            System.out.println(random.nextInt(100));
        }
    }
}    

 

第一次運行結果以下:數學

第二次運行結果以下:table

從上面的兩次結果能夠看出來,兩次產生的隨機數序列是不同的。這是由於當建立Random的實例對象時,沒有指定種子,系統會以當前時間戳爲種子,產生隨機數。

下面把代碼稍做修改:

Example03.java

public class Example03 {
    public static void main(String[] args) {
        Random random = new Random(13);//建立對象時傳入種子
        //隨機產生10個【0,100】之間的整數
        for (int i = 0; i < 10; i++) {
            System.out.println(random.nextInt(100));
        }
    }
}

 

第一次運行結果以下:

第二次運行結果以下:

從兩次運行結果能夠看出來,在建立Random類的實例對象時,若是指定了相同的種子,則每次產生的隨機數是相同的。

Random類提供了更多的方法來生成各類僞隨機數,不只能夠生成整數類型的隨機數,還能夠生成浮點類型的隨機數。

方法聲明 功能描述
boolean nextBoolean() 隨機生成boolean類型的隨機數
double nextDouble() 隨機生成double類型的隨機數
float nextFloat() 隨機生成float類型的隨機數
int nextInt() 隨機生成int類型的隨機數
int nextInt(int n) 隨機生成0~n之間的int類型的隨機數
long nextLong() 隨機生成long類型的隨機數

 

 

 

 

 

 

下面經過例子來看一下這些方法的使用:

Example04.java

public class Example04 {
    public static void main(String[] args) {
        Random r1 = new Random();//建立Random實例對象
        System.out.println("產生float類型的隨機數:" + r1.nextFloat());
        System.out.println("產生0-100之間int類型的隨機數:" + r1.nextInt(100));
        System.out.println("產生double類型的隨機數:" + r1.nextDouble());
    }
}

 

運行結果以下:

從上面的運行結果能夠看出來,經過調用Random類不一樣的方法分別產生了不一樣類型的隨機數。

相關文章
相關標籤/搜索