我想生成范围0-9的随机整数,并将其放入 size 100 的数组中。这很容易,但我对如何确保在数组中,我至少有一个0-9范围内的每个整数的出现一无所知。
顺便说一句,这都是使用java的。
这是我到目前为止所得到的(我的编码中的数字不同,因为我想问一个更简单的问题):
public static int[] extendTo1024(int[] key) {
int[] extendedKey = new int[1024];
Random random = new Random();
for(int i = 0; i < 1024; i++) {
int rand = random.nextInt(64) + 1;
extendedKey[i] = bitKey[rand];
}
return extendedKey;
}
有任何帮助吗?提前谢谢!
答案 0 :(得分:3)
答案 1 :(得分:1)
ArrayList<Integer> al = new ArrayList<Integer>();
//make sure the array contains all occurences of 0-9
for (int i = 0; i < 10; i++) {
al.add(i, i);
}
//generate random number for the remaining 90
for (int i = 10; i < 100; i++) {
int random = (int) (Math.random() * 10);
al.add(i, random);
}
//shuffle the random numbers to make sure that the first 10 are randomly placed
Collections.shuffle(al);
//Convert it back to array (In case you need it to be array not ArrayList)
Integer[] randomNums = al.toArray(new Integer[100]);
//result
for (int i : randomNums) {
System.out.println(i);
}