当前位置: 首页 > 面试题库 >

在Java中获取随机布尔值

翟越
2023-03-14
问题内容

好的,我在代码中实现了这个SO问题:随机返回True或False

但是,我的行为很奇怪:我需要同时运行十个实例,每个实例每次运行仅返回一次true或false。令人惊讶的是,无论我做什么,每次我得到false

有什么方法可以改善这种方法,以便我至少有大约50%的机会得到true吗?

为了使它更易于理解:我将应用程序构建为JAR文件,然后通过批处理命令运行

 java -jar my-program.jar
 pause

程序的内容-使其尽可能简单:

public class myProgram{

    public static boolean getRandomBoolean() {
        return Math.random() < 0.5;
        // I tried another approaches here, still the same result
    }

    public static void main(String[] args) {
        System.out.println(getRandomBoolean());  
    }
}

如果我打开10个命令行并运行它,false每次都会得到结果…


问题答案:

我建议使用
Random.nextBoolean()

话虽如此,Math.random() < 0.5就像您使用过的一样。这是我机器上的行为:

$ cat myProgram.java 
public class myProgram{

   public static boolean getRandomBoolean() {
       return Math.random() < 0.5;
       //I tried another approaches here, still the same result
   }

   public static void main(String[] args) {
       System.out.println(getRandomBoolean());  
   }
}

$ javac myProgram.java
$ java myProgram ; java myProgram; java myProgram; java myProgram
true
false
false
true

不用说, 不能保证 每次都获得不同的值。但就您而言,我怀疑

A)您未使用自己认为的代码(例如编辑错误的文件)

B)在测试时您没有编写不同的尝试,或者

C)您正在使用一些非标准的无效实现。



 类似资料:
  • 问题内容: 我正在寻找最好的方法(快速而优雅)来获取python中的随机布尔值(翻转硬币)。 目前,我正在使用或。 有我不知道的更好的选择吗? 问题答案: 亚当的答案相当快,但是我发现答案要快得多。如果您真的想要布尔值而不是long值,那么 仍然是两倍的速度 两种解决方案都需要 如果最大的速度不是优先考虑的话,那么阅读肯定会更好 在看到@Pavel的答案后添加了此内容

  • 嗨,我有一个代码检查代理。当我运行该方法时,我总是得到false。我明白这个问题是最后一个错误。当我用println在控制台上输出它时,它也在false和true之间存在差异,但没有将正确的值作为方法的返回值返回。你能帮忙吗!如果代理联机,代码必须输出true

  • 问题内容: 我想在Java中获得1到50之间的随机值。 在的帮助下,我该怎么办;? 如何绑定返回的值? 问题答案: 第一种解决方案是使用类: 另一种解决方案是使用: 要么

  • 我想通过在Java中使用push()从列表中获得一个随机。

  • 问题内容: 我想通过使用Java中的push()从列表中获取随机数。 这是存储数据的代码: 这是我的firebase数据库中的样子: 这是我检索数据的方式: 我想在数据库中检索一个随机值。例如。获取随机值,它可以是“明天非常多风”或“今天非常多风和多雨”。 你们能为我提供一些我可以在Java中使用的信息的帮助吗,但是我仍然没有其他语言的经验。先感谢您。 解决了 问题答案: 在数据库中找出可能的值(

  • 我正在使用CodeIgniter 3和PostgreSQL 9.4数据库。如果数据库中相应列的数据类型是布尔值,有没有办法在PHP中获取布尔值? 我使用CodeIgniters查询生成器类,如下所示: 用户表中的所有布尔值都由字符串('t'和'f')表示。