当前位置: 首页 > 知识库问答 >
问题:

改进数独随机数生成器[重复]

商振
2023-03-14

我正在开发我的第一个应用程序,我正在开发一个数独手机游戏。我已经开发了随机数生成器,我只是不知道如何编写它,所以它只生成1-9之间的数字(不是零),每个数字只生成一次。这是我目前所拥有的:

package randomNumber;

import java.util.Random; 

public class OneToNine {

    public static final void main(String... aArgs) {
        log ("generating random integers in range 1-9");
        Random randomGenerator = new Random();
        for (int idx = 1; idx <= 9; ++idx) {
            int randomInt = randomGenerator.nextInt(9);
            log ("Generated : " + randomInt);
        }

        log("Done. ");  
    }

    private static void log (String aMessage) {
        System.out.println(aMessage);
    }

}

共有3个答案

顾俊誉
2023-03-14

您可能希望使用如下函数:

public static int getRandInt(int max, int min) {
   return new Random().nextInt((max - min) + 1) + min;
}
楚宇
2023-03-14

对于第二部分,要查看这些数字是否重复,可以轻松地使用哈希集之类的数据结构,这是检查重复值的最有效方法。如果你对它们不太满意,请告诉我。使用哈希集,您可以得出一个随机数,并检查该集是否包含此数,如果包含,请重试。

关于随机数,你可以只做随机数Generator.nextInt(9)1,所以它总是从1-9(包括在内)。

慕志泽
2023-03-14

与其担心以随机顺序生成数字,不如调整对数字进行洗牌的方法。你知道你会有数字1-9,所以这样做:

公共数组列表

 类似资料:
  • 您好,如何在kotlin中生成0到10之间的随机整数?我尝试了<code>Random()。nextInt()和,但我无法生成一个。谢谢

  • 问题内容: 我想创建一组随机数,在Java中没有重复项。 例如,我有一个数组来存储10,000个从0到9999的随机整数。 这是我到目前为止的内容: 但是上面的代码创建重复项。如何确保随机数不重复? 问题答案: 例如:

  • 如何在1到9之间生成9个随机数,而不重复,一个接一个。它类似于:假设生成的第一个随机数是4,那么下一个随机数必须在[1,9]{4}中。我的第一种方法是将每个随机生成的数字添加到一个集合中,从而避免重复。但在更糟糕的情况下,比如我们已经生成了6个数字,我们必须再生成3个数字,这个过程会有点慢。当范围从[1,9]更改为[1,1000]时,这种方法听起来不正确。有人能提出一个替代方法吗。

  • random 生成随机数包 文档:https://www.npmjs.com/package/random 安装:npm install --save random 封装代码: app / extend / context.js // 导入 jwt const jwt = require('jsonwebtoken') // 导入随机数包 const random = require('rando

  • 问题 你需要生成在一定范围内的随机数。 解决方案 使用 JavaScript 的 Math.random() 来获得浮点数,满足 0<=X<1.0 。使用乘法和 Math.floor 得到在一定范围内的数字。 probability = Math.random() 0.0 <= probability < 1.0 # => true # 注意百分位数不会达到 100。从 0 到 100 的范围实

  • 生成随机数 # random_random.py import random for i in range(5): print('%04.3f' % random.random(), end=' ') print() # random_uniform.py import random for i in range(5): print('{:04.3f}'.format(ran