【发布时间】:2017-01-27 16:37:41
【问题描述】:
您好,我正在尝试编写一个程序来检查 Java 中随机数的分布。 该程序的想法是(使用Java)生成许多随机数,然后查看以下每个范围内有多少个数字:
- 0.0 - 0.1
- 0.1 - 0.2
0.2 - 0.3
...
0.8 - 0.9
0.9 - 1.0
我已经设法做到了,但我想知道是否有更有效/更快的方法来做到这一点。
public class RandomTest
{
//Get value of digit in tenths place of double
public static int getFirstDecimal(double num)
{
return (int) (num * 10);
}
public static void main(String args[])
{
int[] results = new int[10]; //Results array
double x; //Random number holder
int genNum; //Number of random numbers to generate
for(genNum = 0; genNum < 10000; genNum++)
{
x = Math.random();
results[getFirstDecimal(x)]++;
}
for(int i = 0; i < 10; i++)
{
System.out.println(results[i]);
}
}
}
【问题讨论】:
-
由于
getFirstDecimal()非常简单,而且您只需从一行代码中调用它,因此内联它可能会更有效。 -
除此之外,我看不出哪里有很大的空间可以删减任何内容,或者您在哪里做的工作超出了需要。
-
你如何判断这些数字是否随机?
标签: java algorithm optimization random