以下哪种方法" java.util.Random类"和" Math.random()方法"生成随机数更快?

时间:2017-04-09 07:18:59

标签: java algorithm performance random compare

在我的代码中,时间问题最重要,所以我问过这个问题。 实际上我必须在循环中用Java编程语言生成数百万次随机整数(int),所以在这种情况下只有一个简单的区别。

我必须在循环内生成从1到6的随机数。

首先: - java.util.Random类

这取自here

我还发布了下面的截图。

None

Screenshot

第二: - Math.random()方法

import java.util.Random;
static Random randGen = new Random();
int spots;
spots = randGen.nextInt(6) + 1;

使用Cast,因为此方法始终返回浮点值。

就像现在一样,我认为你对事情很熟悉所以这里是我的问题哪个是最快的,为什么? 两者都使用其他类, 两者都没有最小值的论证,就像我的情况一样。 随机类的参数值最大但是Math.random()没有。

但另一方面,为了使用int n = (int)(6.0 * Math.random()) + 1; ,我们还必须使用cast(int),因为Random值应该是Integer。

1 个答案:

答案 0 :(得分:0)

我认为最快的是第二个(Math.random()),因为你不必初始化一个类,但我建议你使用Random类,因为你可以指定最大值你想要方法去的号码

示例:

随机rand = new Random(); rand.nextInt(10);

这将为您提供0到10之间的数字。如果您想要另一个范围(例如从4到12,您必须输入:

rand.nextInt(8)+ 4;

这将返回0到8之间的数字,并添加4,这样您就可以获得4到12之间的数字。

在回答你的问题时,我认为最快的方法是Math.random(),但最有用的方法是Random class one