JAVA怎么实现从指定范围随机取不重复的6个数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA怎么实现从指定范围随机取不重复的6个数字相关的知识,希望对你有一定的参考价值。

如题,想实现当出现重复数字时,不管取了多少,都重新开始取,高手解答,谢谢

我写了一个给你:
public static int[] randomNum(int start, int end)
int[] array = new int[6];
for(int i = 0; i < 6; i++)
array[i] = (int)(Math.random() * (end - start) + start);
for(int j = 0; j < i;j++)//检测是否重复
if(array[i] == array[j])
i = -1;//重复重新从头开始
break;



return array;


全部的代码:

public class RandomNum

public static void main(String[] args)

int[] array = randomNum(0, 1000);
for (int i = 0; i < 6; i++)
System.out.print(array[i] + " ");




public static int[] randomNum(int start, int end)
int[] array = new int[6];
for (int i = 0; i < 6; i++)
array[i] = (int) (Math.random() * (end - start) + start);
//System.out.print(array[i] + " ");
for (int j = 0; j < i; j++)
if (array[i] == array[j])
i = -1;
break;



return array;


参考技术A import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class RandomTest
private static Set<Integer> set = null;

private final static Random random = new Random();

public RandomTest()
set = new HashSet<Integer>();


/**
* 将该方法抽出来,主要是在使用的时候灵活
* @param rang 标示获取数据的范围
* @param size 标示要获取随机数的数量
*/
public void getNumber(int rang,int size)
while(set.size()<size)
int randomNum=random.nextInt(rang);
set.add(randomNum);



public Set<Integer> getSet()
return set;


public static void main(String[] args)
RandomTest test = new RandomTest();
//要获取0~10之间的9个数字
test.getNumber(10, 9);
Set<Integer> set =test.getSet();
for(int i:set)
System.out.println(i);


参考技术B import java.util.HashSet;
import java.util.Set;

public class TestRandom
static final int MAX=10;//用来指定范围的
public static void main(String[] args)
Set set=new HashSet();//保证数据不重复
boolean flag=true;
while(flag)
int temp=(int)(Math.random()*MAX);
set.add(temp);
if(set.size()==6)
break;


System.out.print(set);

参考技术C 你的意思是重复的就不算了,如果这样,应该有一个循环,肯定还有一个if判断,知道重复不重复还应该一个一个的比较,那就用到数组,综合一下就可以了

java怎么在几个指定数字里面产生随机数

放在一个数组中,然后使用(int)Math.random();随机出数组的索引。
int[] nums = 4, 1, 12, 10, 7, 6, 22, 100, 30, 82 ;
int i = (int) (Math.random() * nums.length);
System.out.println(nums[i]);
i = (int) (Math.random() * nums.length);
System.out.println(nums[i]);
已在Eclipse中测试过,可运行。
参考技术A 1、获取数组长度 int arr[] = 1,2,3,4,5;//定义一个数组int len = arr.length;//获取数组长度给变量len2、根据数组长度,使用Random随机数组的索引值 Random random = new Random();//创建随机对象int arrIdx = random.nextInt(len-1)

以上是关于JAVA怎么实现从指定范围随机取不重复的6个数字的主要内容,如果未能解决你的问题,请参考以下文章

请问用java从1-33个整数中随机抽取6个数字 且不重复 该怎么写?

java怎么在几个指定数字里面产生随机数

VBS产生随机不重复的数字

请问用java从1-33个整数中随机抽取6个数字 且不重复 1-16随机抽取一个数,给小球?

怎样用java产生一个指定范围的随机数?

在指定数字范围内,随机获取n个不重复数字