java - 如何使用 Java 生成 1 到 6 之间的 6 个随机数?

标签 java arrays random numbers prng

我遇到了在 Java 中生成 1 到 6 之间的 6 个随机数的问题。所有数字都必须是唯一的。当我输入 kolon 值 5 时,数组应该是这样的:

1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6

我不希望程序生成相同的两个数字。这里有什么问题?

相关代码:

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Please enter row quantity: ");

    int kolon = input.nextInt();

    Integer[][] dizi_asil = new Integer[kolon][6];

    for (int i = 0; i < kolon; i++) {
        Integer[] dizi = new Integer[6];

        for (int j = 0; j < 6; j++) { 

            dizi[j] = (int) ((Math.random() * 6) + 1);  

            for (int u = 0; u < 1; u++) { 

                for (int k = 0; k < j; k++) { 

                    while (dizi[k] == dizi[j]) { 
                        dizi[j] = (int) ((Math.random()* 6)  + 1);
                        u++;
                    }

                }
            }
            dizi_asil[i][j] = dizi[j];
        }
        Arrays.sort(dizi_asil[i]);
    }

    for (int i = 0; i < dizi_asil.length; i++) {
        for (int k = 0; k < dizi_asil[i].length; k++) {
            System.out.print(dizi_asil[i][k] + "\t");
        }
        System.out.println();
    }

最佳答案

创建一个包含 1 到 6 的列表。然后使用 Collection.shuffle 对其进行洗牌.然后你会得到随机的唯一编号

关于java - 如何使用 Java 生成 1 到 6 之间的 6 个随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16174056/

相关文章:

c# - 如何显示数组元素出现的次数

c++ - 随机双C++11

python - 如何对 List 使用 Random Randint?

java - 如何使用java更改html文件的宽度和高度

java - Linux 上的 Gradle "cannot find Tools.jar"

javascript - 根据一个属性和日期对象的值对数组进行排序,以使用 JavaScript 获取最近的条目

javascript - 如何更改随机元素高度

java - 如何将参数从过滤器发送到 Controller ?

java - 如何将 url 参数绑定(bind)到 jax-rs 中的 Controller 参数对象

java - 如何从数组中删除元素