我想得到一个0到100之间的整数随机数,不同范围内有不同的概率。
例如,我希望 0 到 20 之间的值的概率为 0.5
21 到 80 之间的值的概率为 0.4
81 到 100 之间的值的概率为 0.1
.
Java中有没有方法或类或者Java库可以做到这一点?如果没有,我该如何自己做呢?
最佳答案
您只需要一个额外的随机数来确定它应该生成的范围:
int getRandomNumberWithRangeProbability() {
double range = Math.random();
if (range < 0.5) {
return randomWithRange(0, 20);
} else if (range < 0.9) {
return randomWithRange(21, 80);
} else {
return randomWithRange(81, 100);
}
}
int randomWithRange(int min, int max) {
int range = (max - min) + 1;
return (int) (Math.random() * range) + min;
}
小测试一下可以找到here .
感谢 AusCBloke对于 randomWithRange()
方法。
关于java - java中如何获取不同范围内不同概率的随机数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50896039/