像我的问题一样,我需要生成一个在范围之间具有相同对的随机数。我试图生成随机数并存储在数组中,但数字重复两次以上。我有16个随机数要在范围内生成。任何想法如何使它只生成相同的对随机数?

最佳答案

以下将完成我认为的工作:

import java.util.*;

class Randoms {
  public static void main(String[] args) {
    List<Integer> randoms = new ArrayList<Integer>();
    Random randomizer = new Random();
    for(int i = 0; i < 8; ) {
      int r = randomizer.nextInt(8) + 1;
      if(!randoms.contains(r)) {
        randoms.add(r);
        ++i;
      }
    }
    List<Integer> clonedList = new ArrayList<Integer>();
    clonedList.addAll(randoms);
    Collections.shuffle(clonedList);

    int[][] cards = new int[8][];
    for(int i = 0; i < 8; ++i) {
      cards[i] = new int[]{ randoms.get(i), clonedList.get(i) };
    }

    for(int i = 0; i < 8; ++i) {
      System.out.println(cards[i][0] + " " + cards[i][1]);
    }
  }
}

上面的一个示例运行给出:
1 2
8 6
4 3
3 7
2 8
6 1
5 5
7 4

希望能有所帮助。

09-04 10:55