當前位置:首頁 » 編程語言 » java隨機不重復

java隨機不重復

發布時間: 2022-09-07 01:01:14

java中怎樣實現數組中隨機數不重復

可以參考下面的代碼:

public static void main(String[] args) {

int s = -1;

int a[] = new int[100];

int i = 0;

while (i < 100) {

s = (int) (Math.random() * 100 + 1);

for (int j = 0; j < 100; j++) {

if (a[j] == s) {

break;

} else if (j == i) {

a[i] = s;

i++;

break;

}

}

}

}

(1)java隨機不重復擴展閱讀:

java參考函數

max(x,y) 返回 x 和 y 之間較大的數

min(x,y) 返回 x 和 y 之間較小的數

pow(x,y) 返回 y^x 的值

random() 返回位於 0 到 1 之間的隨機函數

round(x) 四舍五進後與整

sin(x) 返回數字的正弦值

sqrt(x) 返回數字的平方根

tan(x) 返回一個角度的正切值

toSource() 顯示對象的流代碼

valueOf() 返回數教對象的本初值

❷ 怎樣用java產生一個指定范圍而且不重復的隨機數

首先,需要一個范圍內的隨機數,第二部判重,如果重復了就再次隨機.
假設我們需要一個m到n的隨機數..
需要用到random函數隨機一個從0到1的數.然後再乘m到n的范圍,再加m
double i = Math.random() * (m - n) + m ----> 生成隨機數
判重..方法有很多種了..比如我們用一個Set來存放已經存在的..
Set<Double> set = new LinkedHashSet<>();
if (set.contains(i)) { 重復了,重新隨機 }
else { 向set中添加: set.add(Double.valueOf(i)); }
2017年8月28日 21:37:44

❸ Java怎麼產生不重復的隨機數,求代碼

/**
*隨機指定范圍內N個不重復的數
*最簡單最基本的方法
*@parammin指定范圍最小值
*@parammax指定范圍最大值
*@paramn隨機數個數
*/
publicstaticint[]randomCommon(intmin,intmax,intn){
if(n>(max-min+1)||max<min){
returnnull;
}
int[]result=newint[n];
intcount=0;
while(count<n){
intnum=(int)(Math.random()*(max-min))+min;
booleanflag=true;
for(intj=0;j<n;j++){
if(num==result[j]){
flag=false;
break;
}
}
if(flag){
result[count]=num;
count++;
}
}
returnresult;
}

❹ java不重復的隨機數

for(int
i=0;i<12;i++)是取12個隨機數
10個數怎麼能取出12個不重復的,死循環了
,

❺ java中怎樣讓隨機數不重復

java中要使生成的隨機數不重復可以將已經生成的隨機數放入到數組中,每次生成隨機數時與數組的內容比較是否相等,相等則重新生成,不相等則存入數組。
示例代碼如下(生成10之內的4個不相等的整數):

publicclassDemo{
publicstaticvoidmain(String[]args){
int[]a=newint[]{-1,-1,-1,-1};//初始化數組
Randomrandom=newRandom();
intcount=0;//記錄有效的隨機數個數
while(count<a.length){
booleanflag=true;//用來標志的變數
intr=random.nextInt(10);
for(inti=0;i<a.length;i++){
if(r==a[i]){
flag=false;
break;
}
}
if(flag){
a[count]=r;
System.out.println(r);
count++;
}
}
}
}

其中的變數flag用來標志產生的隨機數是否已經存在,默認值設置為true,表示不存在,flase表示該隨機數已經存在。

❻ java如何生成一組隨機的不重復的數列

思路:

0)、把從min到max的可能出現的數字全部放進一個候選List;
1)、隨機生成索引index(0 <= index <= (list.size()-1));
2)、根據index從List中取出一個數,list.get(index),並移除這個元素;

importjava.util.ArrayList;importjava.util.List;importjava.util.Random;publicclassMyRandom{

/**
*根據min和max隨機生成一個范圍在[min,max]的隨機數,包括min和max
*@parammin
*@parammax
*@returnint
*/
publicintgetRandom(intmin,intmax){
Randomrandom=newRandom();
returnrandom.nextInt(max-min+1)+min;
}

/**
*根據min和max隨機生成count個不重復的隨機數組
*@parammin
*@parammax
*@paramcount
*@returnint[]
*/
publicint[]getRandoms(intmin,intmax,intcount){
int[]randoms=newint[count];
List<Integer>listRandom=newArrayList<Integer>();

if(count>(max-min+1)){
returnnull;
}
//將所有的可能出現的數字放進候選list
for(inti=min;i<=max;i++){
listRandom.add(i);
}
//從候選list中取出放入數組,已經被選中的就從這個list中移除
for(inti=0;i<count;i++){
intindex=getRandom(0,listRandom.size()-1);
randoms[i]=listRandom.get(index);
listRandom.remove(index);
}

returnrandoms;
}
}

❼ JAVA怎麼生成不重復的隨機數

沒辦法,只好把生成的隨機數放到set中,以後每次取隨機數,判一下set,有的話,重新生成。

❽ random 怎麼實現隨機數不重復方法 java

java中實現隨機數不重復主要思想是使用hashset來保存每個生成的數據,因為set集合本身內部機制實現了不保存相同的數據,代碼如下:

/**
*隨機指定范圍內N個不重復的數
*利用HashSet的特徵,只能存放不同的值
*@parammin指定范圍最小值
*@parammax指定范圍最大值
*@paramn隨機數個數
*@paramHashSet<Integer>set隨機數結果集
*/
publicstaticvoidrandomSet(intmin,intmax,intn,HashSet<Integer>set){
if(n>(max-min+1)||max<min){
return;
}
for(inti=0;i<n;i++){
//調用Math.random()方法
intnum=(int)(Math.random()*(max-min))+min;
set.add(num);//將不同的數存入HashSet中
}
intsetSize=set.size();
//如果存入的數小於指定生成的個數,則調用遞歸再生成剩餘個數的隨機數,如此循環,直到達到指定大小
if(setSize<n){
randomSet(min,max,n-setSize,set);//遞歸
}
}
熱點內容
谷能壓縮機 發布:2025-01-13 15:44:30 瀏覽:412
電腦電腦直連通訊ftp 發布:2025-01-13 15:38:03 瀏覽:717
nvm存儲 發布:2025-01-13 15:36:19 瀏覽:552
京東架構師緩存經驗 發布:2025-01-13 15:33:00 瀏覽:726
android圖片顏色 發布:2025-01-13 15:26:09 瀏覽:268
國家稅務總局電腦伺服器 發布:2025-01-13 15:10:24 瀏覽:596
金立老款機的開機密碼是多少 發布:2025-01-13 15:04:45 瀏覽:456
湖南網上辦稅初始密碼多少 發布:2025-01-13 15:02:49 瀏覽:417
怎麼使用筆記本連接伺服器 發布:2025-01-13 15:02:48 瀏覽:705
長城cs75plus選哪個配置 發布:2025-01-13 14:54:05 瀏覽:22