① java產生不同的隨機數
可以使用java.lang.Math.random()方法,返回帶正號的 double 值,大於或等於 0.0,小於 1.0。返回值是一個偽隨機 (pseudorandomly) 選擇的數,在上述范圍內(大致)均勻分布。
如果想精確控制隨機數的生成,可以使用java.util.Random類的實例,詳細方法請參見Javadoc
② Java怎麼產生隨機數
一、利用random方法來生成隨機數。
在Java語言中生成隨機數相對來說比較簡單,因為有一個現成的方法可以使用。在Math類中,Java語言提供了一個叫做random的方法。通過這個方法可以讓系統產生隨機數。
二、通過Random類來生成隨機數。
在Java語言中,除了可以通過random 方法來產生隨機數之外,還可以通過一個random類來產生隨機數。程序開發人員可以通過實例化一個Random對象來創建一個隨機數的生成器。如 Random i=new Random()。通過這條語句就利用了Random類創建了一個隨機數的生成器。數
三、產生隨機的字元。
可以利用random方法來產生隨機字元。如可以利用代碼生成一個隨機的小寫字元:(char)(『a』+Math.random()*(『z』-『a』+1))。其實這跟生成任意兩個數之間的隨機數類似。通過以上的代碼就可以生成一個范圍之內的任意隨機字元。通過對這個代碼進行適當的修整,還可以生成任意兩個字元之間的隨機字元與任意大寫字元的隨機字元。其轉換的方式跟上面提到的任意范圍之內的隨機數類似。
③ Java產生隨機數的幾種方式
方法1
(數據類型)(最小值+Math.random()*(最大值-最小值+1))
例:
(int)(1+Math.random()*(10-1+1))
從1到10的int型隨數
方法2
獲得隨機數
for (int i=0;i<30;i++)
{System.out.println((int)(1+Math.random()*10));}
(int)(1+Math.random()*10)
通過java.Math包的random方法得到1-10的int隨機數
公式是:最小值---最大值(整數)的隨機數
(類型)最小值+Math.random()*最大值
方法3
Random ra =new Random();
for (int i=0;i<30;i++)
{System.out.println(ra.nextInt(10)+1);}
通過java.util包中的Random類的nextInt方法來得到1-10的int隨機數
生成0到1之間的任意隨機小數:
生成[0,d)區間的隨機小數,d為任意正的小數,則只需要將nextDouble方法的返回值乘以d即可。
[n1,n2]
也就是 ra.nextDouble() * (n2-n1)+n1
④ 如何在java中產生四個不同的隨機數
int[] random = new int[4];
for(int i=0;i<4;i++){
// 產生四個10000以內的隨機數,並保存在數組之中
random[i] = (int)Manth.round(Math.random()*10000);
}
System.out.println(" 產生的隨機數為:");
for(int i=0;i<random.length;i++){
System.out.println(random[i]+" ");
}
⑤ java生成7個不同的隨機數
int random = (int)(Math.random()*(37-i));
這一句好像有問題
i == 0的時候, 假如Math.random()是0.995 , 很接近1的時候,(int)(Math.random()*37)就是37,
下一句
no[i]=num[random]; //這里會造成數組越界
可以這樣改 (前面沒有問題)
// 生成7個不同的隨機數
for(int i=0;i<7;i++){
int random = (int)(Math.random()*(36-i)); //改成36
no[i]=num[random];
num[random]=num[num.length-1-i];
System.out.print(no[i]+"\t");
}
你的演算法目的是不是 隨機生成7個不同的數,這些數 大於等於1 , 小於等於36?
⑥ 在java中產生隨機數
一、利用random方法來生成隨機數。
在Java語言中生成隨機數相對來說比較簡單,因為有一個現成的方法可以使用。在Math類中,Java語言提供了一個叫做random的方法。通過這個方法可以讓系統產生隨機數。不過默認情況下,其產生的隨機數范圍比較小,為大於等於0到小於1的double型隨機數。雖然其隨機數產生的范圍比較小,不能夠滿足日常的需求。如日常工作中可能需要產生整數的隨機數。其實,只要對這個方法進行一些靈活的處理,就可以獲取任意范圍的隨機數。
如我們可以先通過random方法生成一個隨機數,然後將結果乘以10。此時產生的隨機數字即為大於等於0小於10的數字。然後再利用Int方法進行轉換(它會去掉小數掉後面的數字,即只獲取整數部分,不是四捨五入)。最後即可獲取一個0到9的整數型隨機數字。其實現方法很簡單,就是對原有的random方法按照如下的格式進行變型:(int)(Math.Random()*10)即可。其實我們還可以對這個方法進行擴展,讓其產生任意范圍內的隨機數。至需要將這個10換成n即可,如改為(int)(Math.Random()*n)。此時應用程序就會產生一個大於等於0小與n之間的隨機數。如將n設置為5,那麼其就會產生一個0到5之間的整數型的隨機數。如果將這個寫成一個帶參數的方法,那麼只要用戶輸入需要生成隨機數的最大值,就可以讓這個方法來生成制定范圍的隨機數。在Java中定義自己的工具庫
有時候程序員可能需要生成一個指定范圍內的隨機偶數或者奇數。此時是否可以通過這個方法來實現呢?答案是肯定的。如現在程序要需要生成一個1-100范圍內的偶數。此時該如何實現?首先,需要生成一個0到99之內的隨機數(至於這里為什麼是99,大家耐心看下去就知道原因了)。要實現這個需求,很簡單吧,只要通過如下語句就可以實現: i=1+(int)(Math.Random()*100)。其中(int)(Math.Random()*99)產生0到99的整數型隨機數。然後再加上1就是產生1到100之間的隨機整數。然後將產生的隨機數賦值給變數i。但是此時其產生的隨機數即有偶數,又有奇數。而現在程序員需要的是一個隨機的偶數。那麼我們可以在後面加上一個if判斷語句。將這個隨機數除以2,如果沒有餘數的話(或者余數為0)則表明這個隨機數是偶數,直接返回即可。如果其返回的余數不為零,那麼就表明其是奇數,我們只要加上1就變為了偶數,返回即可。注意,在上面的隨機數生成中,筆者採用的范圍是0到99,然後再加上1讓其變為1到100的隨機數。最後的結果就是生成1到100之間的隨機偶數。其實,如果要范圍隨機奇數的話,至需要對上面的語句進行稍微的修改即可。Java:改變你我的世界
⑦ java生成不同的隨機數
========= 我解釋的是否不夠清楚?滿意請「採納」,呵呵===================
代碼不夠完美,本意想讓生成的數組中各數字不重復,但實際效果不能保證100%。
private int[] createAll() {
//聲明result是長度為7的int數組
int[] result = new int[7];
//創建Random對象,用於生成隨機數
Random r = new Random();
//循環生成7個隨機數賦予result數組
for (int i = 0; i < 7; i++) {
//r.nextInt(33)隨機產生一個0~32之間的數
int temp = r.nextInt(33) + 1;
//對於第一個數,不需要特殊處理,直接賦予result[0]即可
if (i == 0) {
result[0] = temp;
continue; //進入下輪循環。這里不要這句效果一樣。
}
//對於第i (不是第一個) 個數,判斷是否與前面已經生成的數相等
else {
//對第i個數,循環判斷是否與前面所有已生成的數相等
loop: //這個和下面的continue loop;可以去掉,效果一樣
for (int j = 0; j < i; j++) {
//如果與某數相等,重新生成一個隨機數
if (temp == result[j]) {
temp = r.nextInt(33) + 1;
continue loop; //最後再說
}
}
//把生成的隨機數賦予數組中第i+1個位置
result[i] = temp;
}
} //你的代碼這里少了一個大括弧
//返回最終的result數組
return result;
}
⑧ 用JAVA每次產生一個不同的隨機數
你把產生的隨機數 存在一個數組里
然後 每次產生一個隨機數就跟數組里的 元素比較是否相同
如果不同 加入到數組中
產生下一個隨機數 如果相同 重新產生隨機數
⑨ java的兩種產生隨機數[0-2]
方法一不能產生數值為2的隨機數,只能產生數值為0,1的隨機數。
Math的public static double random()方法返回一個double值,該值大於等於 0.0且小於1.0。
因此(int)(Math.random()*2);中Math.random()*2的值是一個隨機的大於等於0,小於2的double型的小數,強制轉換成int後只能產生數字0,1,不能產生2。
假設要產生[min,max]范圍的整數,可以使用以下公式:
(int)(Math.random()*(max-min+1))+min;
因此,要產生[0,2]可以使用int computer=(int)(Math.random()*3);。
方法二可以。
⑩ java 怎麼隨機取出5個0——10的不同隨機數要不同的
public class TestRandom{
public static void main(String[] args){
Random a=new Random();
int s[]=new int[5];
for (int i = 0; i < s.length;) {
s[i]=a.nextInt(10);
if(CheckRandom(s,s[i],i)){
System.out.println("第"+(i+1)+"個隨機數是:"+s[i]);
i++;
}
}
}
public static boolean CheckRandom(int c[],int t,int l){//檢查生成的隨機數是否存在與數組中
for (int i = 0; i < c.length; i++) {
if(c[i]==t&&l!=i){
return false;
}
}
return true;
}
}