如何从特定范围生成4个未重复的数字?

时间:2014-01-30 10:41:26

标签: java android numbers

我需要从特定范围生成4个未重复的数字。有没有有效的方法呢?

3 个答案:

答案 0 :(得分:1)

如果您的范围是[x,y],则在[x,y-3]中生成任意4个数字 这4个数字可以重复,没关系 排序他们。假设它们是:a1< = a2< = a3< = a4。现在使用
数字b1 = a1,b2 = a2 + 1,b3 = a3 + 2,b4 = a4 + 3,好像它们是
生成的。它们在[x,y]中并且不重复。

答案 1 :(得分:1)

这是最简单的方法。

    final int LIMIT = 100;
    final int COUNT = 4;
    Set<Integer> randomNumbers = new HashSet<Integer>(COUNT);
    while(randomNumbers.size() < COUNT) {
        randomNumbers.add(new Random().nextInt(LIMIT));
    }

答案 2 :(得分:0)

        ArrayList<Integer> numbers= new ArrayList<Integer>();
        int from = 2, to = 100;
        for(int i=from;i<=to;i++)
        {
            numbers.add(i);
        }
        Collections.shuffle(numbers);

从arrayList中选择前四个数字。