mathrandomjava
『壹』 java—利用Math.random隨機產生字母的問題
『a』不是字元串哦,「a」這個才是字元串!
呵呵
char
c
=
(char)(Math.random()
*
26
+
'a');
這裡面其實進行了一次系統默認的數據類型轉換和一個強制類型數據類型轉換
默認的數據類型轉換也稱為
隱式的數據類型轉換
當然了
強制。。
稱為
顯式
首先
Math.random()
*
26
+
'a'
這裡面就進行了
隱式轉換
Math.random()
*
26
的結果
是0-26的double
那麼就是一個double+char
的表達式
這個時候根據規則會從小數據類型默認的轉換為大數據類型
然後進行計算
也就是說
0-26的一個double
+
97.000000
那麼它的結果當然也是一個double型
最後強制的將這個double型轉為char型
總結:
小-大
隱式
大-小
顯式
另外
顯式的轉換會丟失數據!
比如
double
d=4.9;
int
i
=(int)d;
到這里
你認識
i是多少?
想一下!
是4!
呵呵
字母對應以外的數字就會得到字母以外的字元
比如32
應該就是回車了
37
38
39
40
對應的←
↑
→
↓了
不過255以上得到的字元應該得到個垃圾值
因為char只能存放0-255的數據
『貳』 java中Math類中有沒有random方法
Java中Math類中有random方法,這個方法產生的隨機數是一個偽隨機選擇的(大致)均勻分布在從0.0到1.0這一范圍內的double類型數
調用格式:
doublea=Math.random();//產生一個隨機數給a
intb=(int)(1+Math.random()*(10-1+1));//產生一個1-10的數給b
另外,還可以使用Random類來完成生產隨機數的功能,
1、java.util.Random類中實現的隨機演算法是偽隨機,也就是有規則的隨機,所謂有規則的就是在給定種(seed)的區間內隨機生成數字;
2、同種子數的Random對象,相同次數生成的隨機數字是完全相同的;
3、Random類中各方法生成的隨機數字都是均勻分布的,也就是說區間內部的數字生成的幾率均等;
示例代碼:產生兩個范圍在(10-300)的隨機數
importjava.util.Random;//導入Random包
publicclassRanadd{
publicstaticvoidmain(String[]args){
intx,y;//定義兩變數
Randomne=newRandom();//實例化一個random的對象ne
x=ne.nextInt(300-10+1)+10;//為兩變數賦隨機值
y=ne.nextInt(300-10+1)+10;
System.out.println(x+"+"+y+"="+(x+y));//輸出
}
}