【问题标题】:Random unique numbers java [duplicate]随机唯一数字java [重复]
【发布时间】:2016-10-11 15:09:09
【问题描述】:

所以我正在为学校做一个小项目,我试图获取 1 到 10 之间的 3 个随机整数并将它们放入一个数组中,它可以工作,但我想要 3 个唯一数字,这就是我能做到的部分真的想不通。

这是我目前的代码:

public static void main(String[] args) {
    int[] randomGetal = genereerGetallen();
    for (int i = 0; i < 3; i++) {
        System.out.println(randomGetal[i]);
    }


}

public static int[] genereerGetallen() {
    int[] randomGetal = new int[3];

    for (int i = 0; i < randomGetal.length; i++){
        randomGetal[i] = (int)(Math.random() * 10);
    }

    return randomGetal;
}

【问题讨论】:

  • 您可以将数字从 1 随机排列到 10 并取前三个。
  • 如果你想要 3 个唯一的数字,你有没有想过如何检查你已经拥有的值?考虑到您正确生成了 3 个随机值,您将如何检查是否已经存在 1 个?你有什么想法?

标签: java arrays random


【解决方案1】:

一些指导可以让您找到正确的方向:现在,您只是在创建三个随机数。那里没有代码来强制执行您想要的约束。

因此:您只需要编写一些知道“已经采用”随机数的代码。因此,当您创建“新”号码并绘制一个您已经选择的号码时;你只需再试一次。

换句话说:开始循环,直到找到另一个未被“采用”的随机数。

一种完全不同的方法是:创建一个包含您感兴趣的数字范围的数组;然后 shuffle 该数组,然后选择第一个 n(现在 3 个)条目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多