【问题标题】:Finding repeating numbers within a column in a 2D array在二维数组的列中查找重复数字
【发布时间】:2021-07-08 02:33:10
【问题描述】:

我正在使用数字制作数字宾果游戏板,我希望所有数字都是唯一的。所以我正在尝试创建一个算法,它将遍历列,找到重复的数字,然后用两个特定数字之间的随机数替换它们。

这是我目前所拥有的:

public void bingoBoardGenrerator(int[][] bingoBoard) {
    for (int row = 0; row < bingoBoard.length; row++) {
        int random = (int) (Math.random() * 15) + 1;
        bingoBoard[row][0] = random;
        for (int j = 1; j < bingoBoard.length; j++) {
            if (bingoBoard[j][0] == random) {
                bingoBoard[row][0] = (int) (Math.random() * 15) + 1;
            }
        }

输出应如下所示,但列中没有重复数字:

 Free space = 0

B   I   N   G   O   

5   25  36  53  61  
9   19  36  60  62  
1   17  0   54  63  
6   20  37  57  71  
5   19  39  57  69  

任何帮助将不胜感激!

【问题讨论】:

    标签: java arrays random numbers repeat


    【解决方案1】:

    对于“B”列:

    1. 使用整数 1-15 创建一个 ArrayList
    2. 然后使用Collections.sort() 随机化数字。
    3. 然后从ArrayList 中取出前5 个数字并将它们添加到您的Array

    使用适当的数字范围对 I、N、G、O 列重复上述步骤。

    或者另一种方法(对于 B)是:

    1. 创建一个集合。
    2. 生成1-15范围内的随机数
    3. 将号码添加到集合中
    4. 如果集合包含 5 个数字,您就完成了。如果没有,请重复步骤 2 - 4。

    对其他列重复上述步骤。

    【讨论】:

    • 我正在为学校项目做这个,我的老师不会让我们使用这种方法。不过还是谢谢!
    • 但是老师让你从网站上复制代码?任务的意义不在于你弄清楚逻辑并实现它吗?
    • 是的,但是当我花了几个小时试图弄清楚一些事情但没有成功时,我会向人们寻求帮助。我的同学也没有弄清楚,所以我决定在网上问一下lol。
    • 我希望所有数字都是唯一的。 好吧,我怀疑任务是在列中找到重复的数字并用非重复的数字替换这些数字。我猜任务是简单地生成 5 个唯一数字。标准方法是 1)生成一个数字 2)查看它是否存在于数组中并重复,直到你有 5 个数字。你有两种方法。如果他们没有帮助,那么我们无法猜测您还有哪些其他限制。
    • 哦,我没有看到其他方法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    • 2013-10-17
    • 2020-07-16
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2011-09-01
    相关资源
    最近更新 更多