java - 尝试随机生成一个从 000 到 110 的二进制数

标签 java random binary

我的代码可以随机生成从 000 到 111 的二进制数,但我无法让它创建从 000 到仅 110 的数字。我知道我可以以某种方式重新运行 111 输出的所有代码,但我似乎无法弄清楚如何让它做到这一点。

public String binNumber() {
        StringBuilder storage = new StringBuilder();
        int i = 0;
        while (i < 3) {
            int binny = this.giveMeBinary();
            storage.append(String.valueOf(binny));

            i++;
        }


        return storage.toString();
    }

public int giveMeBinary() {
        Random rg = new Random();
        int bin = rg.nextInt(2);
        return bin;

    }

最佳答案

更好的方法是生成一个 0 到 6(含)的随机数,然后转换为字符串

public String binNumber() {
    Random rg = new Random();
    int n = rg.nextInt(7);
    return Integer.toBinaryString(n);
}

关于java - 尝试随机生成一个从 000 到 110 的二进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9091419/

相关文章:

java - 为什么我的快速求幂算法在 lambda 参数中出现 'cannot find symbol' 错误?

c - 生成6个随机数时如何检查确保没有重复?

Swift - 播种 arc4random_uniform?还是另类?

java - 如果用户未输入二进制值,如何抛出异常

node.js - 如何接收数据并将其保存为二进制?

java - Azure混合连接不使用java作为后端代码连接sql server数据库实例

java - 如何使用Java8流获取最后一个元素和第一个元素的值之间的差异?

java - 具有 Multi-Tenancy 数据库结构的 ActiveJDBC

python - 在 python 程序中使用 "random"。与 "while"、 "if"和 elif"

java - Integer.MIN_VALUE 的二进制表示