当前位置:首页 » 编程语言 » 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 19:40:52 浏览:142
pythonnumexpr 发布:2025-01-13 19:34:56 浏览:489
linuxpython版本查看 发布:2025-01-13 19:18:37 浏览:741
宝马三系的哪个配置走量 发布:2025-01-13 19:12:14 浏览:695
局域网如何访问服务器 发布:2025-01-13 18:56:24 浏览:189
javaarraylist访问 发布:2025-01-13 18:56:10 浏览:671
如何确定胶体是否配置成功 发布:2025-01-13 18:46:07 浏览:73
fgo缓存多大 发布:2025-01-13 18:42:13 浏览:972
能缓解压力的水果 发布:2025-01-13 18:15:36 浏览:391
怎么把文件压缩成文件 发布:2025-01-13 18:15:33 浏览:610