Math類:
java.lang包中的Math類也稱數學類,是一個工具類。其中包含了許多用來進行科學計算的類方法,涉及大多數學函數,這些方法可以通過類名直接調用。此外還提供了兩個靜態數學常量Math.PI和Math.E,分別代表:E和PI。
下面是常用的一些方法:
int abs(int i) 求整數的絕對值(另有針對long、float、double的方法)
double ceil(double d) 求小於d的最小整數
double floor(double d) 不大於d的最小整數
int max(int i1,int i2) 求兩個整數中的最大整數(另有針對long、float、double的方法)
int min(int i1,int i2) 求兩個整數中的最小整數(另有針對long、float、double的方法)
double random() 產生0~1之間的隨機數
int round(float f) 求最靠近f的整數
double sqrt(double a) 求平方根
Random類:
Random類中實現的隨機算法是偽隨機,也就是有規則的隨機。在進行隨機時,隨機算法的起源數字稱為種子數(seed),在種子數的基礎上進行一定的變換,從而產生需要的隨機數字。
相同種子數的Random對象,相同次數生成的隨機數字是完全相同的。也就是說,兩個種子數相同的Random對象,第一次生成的隨機數字完全相同,第二次生成的隨機數字也完全相同。這點在生成多個隨機數字時需要特別注意。
下面介紹一下Random類的使用,以及如何生成指定區間的隨機數組以及實現程序中要求的幾率。
1、Random類包含兩個構造方法,下面依次進行介紹:
a、public Random() 該構造方法使用一個和當前系統時間對應的相對時間有關的數字作為種子數,然后使用這個種子數構造Random對象。
b、public Random(long seed) 該構造方法可以通過制定一個種子數進行創建。
示例代碼:
Random r = new Random();
Random r1 = new Random(10);
再次強調:種子數只是隨機算法的起源數字,和生成的隨機數字的區間無關。
2、方法:
a、public boolean nextBoolean()
該方法的作用是生成一個隨機的boolean值,生成true和false的值幾率相等,也就是都是50%的幾率。
b、public double nextDouble()
該方法的作用是生成一個隨機的double值,數值介於[0,1.0)之間。
c、public int nextInt()
該方法的作用是生成一個隨機的int值,該值介於int的區間,也就是-231到231-1之間。
d、public int nextInt(int n)
該方法的作用是生成一個隨機的int值,該值介於[0,n)的區間,也就是0到n之間的隨機int值,包含0而不包含n。
e、public void setSeed(long seed)
該方法的作用是重新設置Random對象中的種子數。設置完種子數以后的Random對象和相同種子數使用new關鍵字創建出的Random對象相同。
