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

生成不重復隨機數java

發布時間: 2022-05-24 00:49:29

java怎麼生成不重復的隨機數

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

⑵ Java如何讓隨機數不重復

1.JAVA中生成隨機數的方式 1、在j2se中使用Math.random()令系統隨機選取一個0~1之間的double類型小數,將其乘以一個數,比如25,就能得到一個0~25范圍內的隨機數,這個在j2me中沒有...
2.隨機給定范圍內N個不重復的數 1、方法一:最簡單最易理解的兩重循環去重 /** * 隨機指定范圍內N個不重復的數 * 最簡單最基本的方法 * @param min 指定范圍最小值 * @param max ...

⑶ 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來幫你生成。

(3)生成不重復隨機數java擴展閱讀:

當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類;

通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用。

⑷ 產生10個范圍在1-10之間的不重復的隨機數,原樣輸出,用java中的數組。

import
java.util.Random;
public
class
Rand
{
public
static
void
main(String[]
args)
{
//產生隨機數的類
Random
random=new
Random();
//裝隨機數的數組
10個整數
int[]
num=new
int[10];
//臨時存放產生的一個隨機數
int
ret=0;
//定義標志位,flag=false代表數組中無重復數,true代表有重復數
boolean
flag=false;
for
(int
i
=
0;
i
<
num.length;)
{
//產生隨機數
ret=Math.abs(random.nextInt()%10)+1;
//循環檢測該隨機數是否與數組中的數重復
for
(int
j
=
0;
j
<
num.length;
j++)
{
//如果存在重復,標志位變為true,並且break退出循環檢測
if
(ret==num[j])
{
flag=true;
break;
}else
{
flag=false;
}
}
//如果檢測完無重復數據,則將產生的隨機數存入數組中,並且數組下標計數加1
if
(!flag)
{
num[i]=ret;
i++;
}
}
//循環輸出產生的隨機數
for
(int
i
:
num)
{
System.out.print(i+"
");
}
}
}
輸出:6
3
5
1
4
10
7
9
8
2

有不明白的請繼續問

⑸ 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生成不重復隨機數

一個不錯的演算法,很簡單,但有效。不過如果范圍比較大,則佔用內存大,就不推薦使用了。個人感覺1000個以內的就可以考慮。這東西也許你早就知道了,但我依然驚嘆演算法的力量。看代碼 import java.util.*;/** * 生成不重復隨機數的一種演算法。***/ public class T { public static void main(String args) { // 種子你可以隨意生成,但不能重復 int seed = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int ranArr = new int; Random ran = new Random(); // 數量你可以自己定義。 for (int i = 0; i seed.length; i++) { // 得到一個位置 int j = ran.nextInt(seed.length - i); // 得到那個位置的數值 ranArr[i] = seed[j]; // 將最後一個未用的數字放到這里 seed[j] = seed[seed.length - 1 - i];} System.out.println("ranArr:" + Arrays.toString(ranArr));}} 一個運行結果

⑺ java中如何用random函數產生不重復的隨機數

廢話不多說直接上代碼!
import java.util.ArrayList;
import java.util.Random;
public class Test {
public static void main(String[] args) {
// 生成 [0-n) 個不重復的隨機數
// list 用來保存這些隨機數
ArrayList list = new ArrayList();
int n = 10;
Random rand = new Random();
boolean[] bool = new boolean[n];
int num = 0;
for (int i = 0; i < n; i++) {
do {
// 如果產生的數相同繼續循環
num = rand.nextInt(n);
} while (bool[num]);
bool[num] = true;
list.add(num);
}
System.out.println(list);
}
}

⑻ 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產生一個指定范圍而且不重復的隨機數

publicintgetRandomNumber(){

IntegerrandomNumber=(int)(Math.random()*100);//產生0-100隨機數

List<Integer>list=newArrayList<Integer>();
if(!list.contains(randomNumber)){//判斷是否重復,不是重復的加入集合
list.add(randomNumber);
}else{//如果產生的隨機數是重復的,用遞歸的方法再次生成
getRandomNumber();
}

returnrandomNumber;
}

我想的思路如上面代碼所示。

⑽ 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;

}

}

}

}

(10)生成不重復隨機數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() 返回數教對象的本初值

熱點內容
腳本師傳奇 發布:2025-02-13 14:45:48 瀏覽:480
我的世界lce伺服器剪輯 發布:2025-02-13 14:40:50 瀏覽:624
phpsftp上傳 發布:2025-02-13 14:35:43 瀏覽:273
c學生管理系統資料庫 發布:2025-02-13 14:21:41 瀏覽:122
傳奇添加會員腳本 發布:2025-02-13 14:20:50 瀏覽:205
微信開發平台源碼 發布:2025-02-13 14:14:20 瀏覽:613
安卓大屏屏幕休眠是什麼意思 發布:2025-02-13 14:13:28 瀏覽:464
腳本的參數設置 發布:2025-02-13 14:11:57 瀏覽:863
androidtexture 發布:2025-02-13 14:11:57 瀏覽:393
怎麼取消網路密碼怎麼設置 發布:2025-02-13 14:11:54 瀏覽:426