还记得旧随机数吗? Java的

时间:2014-09-11 00:35:33

标签: java random numbers generator

为了防止我的随机数生成器出现重复,我想制作一个if语句来测试我的随机数(x)是否与x的任何其他先前值相同。如果是,则返回并重新启动循环。

如何让我的代码记住x的所有先前值?

伪代码:

if (x == previous value of x) {
   return;
}

3 个答案:

答案 0 :(得分:1)

解释:例如,您可以创建一个包含8个数字的列表,然后将该列表随机播放,以便随机化您想要的内容。

代码:

   Integer[] array = new Integer[100];
    for (int i = 0; i < 100; i++) {
        array[i] = i+1;
    }
    List<Integer> list = Arrays.asList(array);
    Collections.shuffle(list);
    for (int i = 0; i < list.size(); i++) {
        System.out.print(list.get(i) + " ");
    }

输出:

  

88 25 24 15 92 87 14 100 68 98 91 32 28 22 74 37 10 90 44 77 94 52 34   86 72 99 46 71 36 26 69 55 82 79 19 78 60 49 70 85 33 66 45 57 61 9 51   76 3 42 16 29 84 93 58 2 53 97 6 17 13 43 12 56 35 96 83 40 38 59 50 5   41 65 11 23 73 4 47 89 1 81 21 80 63 48 20 27 64 54 18 75 30 62 39 31   7 8 67 9

答案 1 :(得分:0)

使用数组记录x的先前值.....并检查该数组中的当前值..

答案 2 :(得分:0)

使用列表记录x的先前值。为此目的,List比数组更好,因为如果你想生成更多的随机数,你不需要调整它们的大小。

List<int> randomNumberList = new ArrayList<int>();
randomNumberList.add(randomNumberThatYouGenerated);

然后只使用if:

if (randomNumberList.contains(randomNumberThatYouGenerated)) {
    //code
}