嘿我正在尝试创建一个程序,生成一个只允许使用一次的随机数。对不起,如果这令我感到困惑,我会尝试解释。我希望有一个程序从1-100生成数字,但是如果它生成33,那么对于其余的数字生成过程33不能再生成,所以我应该以100个不同的数字结束。非常感谢任何帮助,谢谢。
这是我到目前为止的尝试
public class Seed {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a =0;
for (int i =0; i <20;i++) {
a = (int) Math.ceil(10 * Math.random()) ;
System.out.println(a);
int x = a;
System.out.println("This is x: " + x);
if (x == a )
{
a = (int) Math.ceil(10 * Math.random()) ;
}
}
}
}
答案 0 :(得分:11)
预先计算包含所有必需数字的List
,然后在每次需要生成新数字时随机播放并删除元素。例如:
List<Integer> numbers = new ArrayList<Integer>(100);
for (int i = 0; i < 100; ++i)
numbers.add(i);
Collections.shuffle(numbers);
int pick = numbers.remove(0);
int pick2 = numbers.remove(0);