java隨機數重復
『壹』 java隨機生成10個0-100的數,重復生成10次,統計重復出現的數字和重復的次數
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Random;
importjava.util.Set;
publicclassGenerateNumber{
publicstaticvoidmain(String[]args){
Map<Integer,Integer>container=newHashMap<>();
RandomnumberGenerator=newRandom();
intcount=0;
do{
intnumber=numberGenerator.nextInt(100);
if(container.get(number)!=null){
container.put(number,container.get(number)+1);
}else{
container.put(number,1);
}
count++;
}while(count<10);
Set<Map.Entry<Integer,Integer>>set=container.entrySet();
System.out.println("數字 出現次數");
for(Map.Entry<Integer,Integer>entry:set){
System.out.println(entry.getKey()+" "+entry.getValue());
}
}
}
『貳』 java中,我寫了找隨機數不重復的代碼,但是找出的隨機數有重復的,求大神知道
public class radom {
public static void main(String[] args) throws Exception{
final int L=10;
int[] a=new int[L];
for(int i=0;i<a.length;i++){
a[i]=(int)(Math.random()*(L));
for (int j = 0; j <i; j++) {
while(a[i]==a[j])
{
a[i]=(int)(Math.random()*(L));
j=0;//必須讓j重新為0,因為a[i]已經重新取了隨機數,有可能與0到j之 間的數重復,必須重新遍歷以確保數字的唯一性。
}
}
System.out.println(a[i]);
}
}}
『叄』 Java如何讓隨機數不重復
1.JAVA中生成隨機數的方式 1、在j2se中使用Math.random()令系統隨機選取一個0~1之間的double類型小數,將其乘以一個數,比如25,就能得到一個0~25范圍內的隨機數,這個在j2me中沒有...
2.隨機給定范圍內N個不重復的數 1、方法一:最簡單最易理解的兩重循環去重 /** * 隨機指定范圍內N個不重復的數 * 最簡單最基本的方法 * @param min 指定范圍最小值 * @param max ...
『肆』 我想用java的循環嵌套生成不重復的隨機數 但是一直有重復的 清高手指點!
你的思路貌似有點問題
我給你改了你下
你看看哈
public class RandonNum {
public static void main(String[] arg) {
int a[] = new int[23];
boolean y = true;
for (int i = 0; i < a.length; i++) {
do {
y = true;
int random = (int) (Math.random() * 23) + 1;
for (int j = 0; j < i; j++) {
if (a[j] == random) {//應該判斷生成的這個隨機數與前面的數有沒有重復
y = false;//有重復就讓y=false 並跳出循環
break;
}
}
if (y) {//如果y為true就表示生成的隨機數與以前的數沒有重復的
a[i] = random;//沒有重復再給a[i]賦值 這里很重要
System.out.println(a[i]);
}
} while(!y);//如果有重復了 在繼續隨機直到沒有重復的為止
}
}
}
『伍』 java怎樣產生不同隨機數
JAVA中取隨機數有三種方法:
一、Math.random()方法,產生一個大於等於0小於1的一個double,我們可以把他乘以一定的數,比如說乘以100,他就是個100以內的隨機。
二、在java.util.Random的類,我們可以新建一個Random的對象來產生隨機數,他可以產生int、float、double,long。
三、在System類中有一個currentTimeMillis()方法,這個方法返回一個從1970年1月1號0點0分0秒到目前的一個毫秒數,返回類型是long,我們可以拿他作為一個隨機數,我們可以拿他對一些數取模,就可以把他限制在一個范圍之內
『陸』 請問Java編程中隨機數重復一直同一個值,請問有何方法可以解決列入這個程序如果我一直出剪刀就一直平
問題出在 int a=(int)(Math.random())*3+1; Math.random() 的范圍是[0,1),轉換成int 為0 ,這樣a的值始終為1,應該改為int a=(int)(Math.random()*3+1);
『柒』 在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怎麼產生不會重復的隨機數
//產生20個不重復隨機數
publicstaticvoidmain(String[]args){
booleantag=true;
List<Integer>list=newArrayList<>();
for(inti=0;i<20;i++){
intv=(int)(Math.random()*100+1);
for(Integerinteger:list){
if(integer==v){
tag=false;
}
}
if(tag){
list.add(v);
}
}
for(Integerinteger:list){
System.out.println(integer);
}
}
『玖』 java多線程中隨機數重復
java中要使生成的隨機數不重復可以將已經生成的隨機數放入到數組中