Random 我想出了这两种方法来获得5个唯一的随机数。哪一个更好/更有效?还有其他更有效的方法吗?
方法1 方法2Random 我想出了这两种方法来获得5个唯一的随机数。哪一个更好/更有效?还有其他更有效的方法吗?,random,numbers,generator,Random,Numbers,Generator,方法1 方法2 public int[]randIntGen(){ int randInt[]={1,2,3,4,5}; 随机=新随机(); ArrayList cl=新的ArrayList(52); int i=0; 虽然(我允许你的问题删除虚拟文本-准确解释问题本身的内容,标题应该简短易读。同时为你使用的语言添加标记。关于这一点,有一个非常好的wiki页面可能会对你有所帮助 public int[] randIntGen() { int randInt[] = {0,0,0,0,0
public int[]randIntGen(){
int randInt[]={1,2,3,4,5};
随机=新随机();
ArrayList cl=新的ArrayList(52);
int i=0;
虽然(我允许你的问题删除虚拟文本-准确解释问题本身的内容,标题应该简短易读。同时为你使用的语言添加标记。关于这一点,有一个非常好的wiki页面可能会对你有所帮助
public int[] randIntGen() {
int randInt[] = {0,0,0,0,0};
Random random = new Random();
randInt[0] = random.nextInt(52) + 1;
randInt[1] = random.nextInt(52) + 1;
randInt[2] = random.nextInt(52) + 1;
randInt[3] = random.nextInt(52) + 1;
randInt[4] = random.nextInt(52) + 1;
while(randInt[1] == randInt[0]) {
randInt[1] = random.nextInt(52) + 1 ;
}
while(randInt[2] == randInt[0] || randInt[2] == randInt[1]) {
randInt[2] = random.nextInt(52) + 1;
}
while(randInt[3] == randInt[0] || randInt[3] == randInt[1] || randInt[3] == randInt[2]) {
randInt[3] = random.nextInt(52) + 1;
}
while(randInt[4] == randInt[0] || randInt[4] == randInt[1] || randInt[4] == randInt[2] || randInt[4] == randInt[3]) {
randInt[4] = random.nextInt(52) + 1 ;
}
return randInt;
}
public int[] randIntGen() {
int randInt[] = {1,2,3,4,5};
Random random = new Random();
ArrayList<Integer> cl = new ArrayList<Integer>(52);
int i = 0;
while(i<52){
i++;
cl.add(i-1,i);
}
for(int j=0; j<5;j++) {
randInt[j] = cl.get(random.nextInt(52));
cl.remove(randInt[j]-1);
}
return randInt;
}