【问题标题】:Creating an object of Random class or using Math.random() in order to generate random numbers创建 Random 类的对象或使用 Math.random() 来生成随机数
【发布时间】:2016-07-27 12:01:59
【问题描述】:

导入java.util.Random后,可以同时生成随机整数和随机双精度两种方式。

你可以创建一个 Random 类的实例

Random randomGenerator = new Random();

然后用它生成一个大于等于0但小于10的随机整数或double

int randomInteger = randomGenerator.nextInt(10);
double randomDouble = randomGenerator.nextDouble(10);

你也可以使用 Math.random()

int randomInteger = (int)(Math.random() * 10)
double randomDouble = Math.random() * 10

我认为这两种方法都给出了完全相同的结果。 这两种方法中的一种是否曾被首选而不是另一种?

【问题讨论】:

标签: java random


【解决方案1】:

Math.random() 使用 Random 类。它基本上是在 Math 类的 Random 对象上调用 nextDouble()。

但是第一种方法肯定更容易理解和使用。并且比数学类有更多的选择。所以如果你需要很多随机数或者你需要双倍以外的类型,我会选择 Random 类。当您只需要 0 和 1 之间的双精度时,我会使用 Math.random()。

所以基本上这些方法的工作方式没有区别,它们都使用 Random 类。所以你使用的两个取决于我上面所说的情况。

来自随机方法的 Math 类的 javadoc:

当这个方法第一次被调用时,它会创建一个新的伪随机数生成器,就像通过表达式一样

新的 java.util.Random()

链接到 Math.random() 上的 javadoc 页面:https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#random()

我希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-16
    • 2019-07-27
    • 2011-03-11
    • 2021-03-22
    • 1970-01-01
    • 2012-08-07
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多