【发布时间】:2010-03-30 14:41:21
【问题描述】:
Random 类具有在给定范围内生成随机 int 的方法。例如:
Random r = new Random();
int x = r.nextInt(100);
这将生成一个大于或等于 0 且小于 100 的 int 数。我想对 long 数做同样的事情。
long y = magicRandomLongGenerator(100);
Random 类只有 nextLong(),但它不允许设置范围。
【问题讨论】:
-
你有没有考虑过让你的长随机数和你的范围内的模式? (当然,如果范围只有 100,我会生成一个 int 随机数并将其转换为 long。)
-
java.util.Random只使用 48 位分布(见实现细节),所以它不会有正态分布。 -
在现代,可以考虑使用 org.apache.commons.lang3.RandomUtils#nextLong。
标签: java random range long-integer