① java怎麼生成不重復的隨機數
沒辦法,只好把生成的隨機數放到set中,以後每次取隨機數,判一下set,有的話,重新生成。
② java中如何在0~25的范圍內生成五個不重復的數
按照你的要求編寫的[0-25]范圍內生成五個不重復的整數的Java程序如下
(注意 [0-25]包括0和25兩個整數)
publicclassA{
publicstaticvoidmain(String[]args){
int[]a=newint[5];//定義一個5個元素的整型數組用於存放[0-25]范圍的五個不重復的整數
inti,count=1;//定義一個整型循環變數i,和一個統計不重復整數個數的整型變數count,初始化為1,表示進入while循環前已經有一個數了.
a[0]=(int)(Math.random()*26);//生成第一個[0-25]的隨機整數
while(count<5){//如果生成的隨機數不到5個繼續循環
inttemp=(int)(Math.random()*26);//生成[0-25]的隨機整數,放入臨時變數temp
booleanflag=true;//用於判斷是否與數組已有整數重復的標志,如果不重復為true,重復為false.
for(i=0;i<count;i++){//數組已有數據循環
if(temp==a[i]){//判斷新產生的隨機數是否與數組中已有的數據重復
flag=false;//有重復則設置標志為false
break;//有重復退出循環
}
}
if(flag==true){//如果與數組中的數據不重復
a[count]=temp;//把數據賦給數組
count++;//數組中的整數個數加1
}
}
for(i=0;i<a.length;i++){
System.out.print(a[i]+"");//輸出[0-25]范圍內的五個不重復的整數
}
}
}
③ 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;
}
}
}
}
(3)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 (計算機編程逗鉛沒語言)
④ java如何生成12位永遠不重復的數字
Calendar calendar = Calendar.getInstance();
System.out.println("現在汪搏:"+calendar.getTime().getTime());
calendar.add(Calendar.YEAR, 10);
System.out.println("10年後:"+calendar.getTime().getTime());
時間戳高並發還是會有重復的,你應該每獲取一次加1的方法生成。乎畝用鎖對象或者把方法聲明為synchronized保證並發也不會重復。如果有用資料庫,也可以用資料庫提供的sequence來幫你生成。
(4)java不重復數字擴展閱讀:
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類;
通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文困頃祥件中實現的方法來滿足程序的Java API調用。
⑤ JAVA中怎樣自動生成不重復的數字
/**
*隨機產生指定范圍內不重復的數字
*
*@parammin產生最小數字
*@parammax產生最大數字
*@paramcount總共要產生多少個不重復的數
*@returnint數組,是從小到大排序後的結果
*/
publicstaticint[]getRandomNumbers(intmin,intmax,intcount){
intnum=0;
inti=0;
int[]arrs=newint[count];
if(count>(max-min)){
System.out.println("產生的數字個數超出設定最大最小值之間的范圍!");
returnnull;
}
while(i<count){
num=(int)(Math.random()*max);
if(num>=min&&!ArrayUtils.contains(arrs,num)){
arrs[i]=num;
i++;
}
}
Arrays.sort(arrs);
returnarrs;
}
⑥ 怎樣用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