我有N个值(整数)。 我想知道什么是最优雅的方式来随机挑选关于百分比的值之一。 例如,对于一个3个值例如:
- 值1有30%的几率得到回升
- 值2有12%的几率得到回升
- 值3有45%的机会得到回升
我需要这个程序我与Java,但伪码算法或以任何其他语言的代码开发将是确定的。
我有N个值(整数)。 我想知道什么是最优雅的方式来随机挑选关于百分比的值之一。 例如,对于一个3个值例如:
我需要这个程序我与Java,但伪码算法或以任何其他语言的代码开发将是确定的。
这样做不计算值的使用是一种方式
double d = Math.random() * 100;
if ((d -= 30) < 0) return 1;
if ((d -= 12) < 0) return 2;
if ((d -= 45) < 0) return 3;
return 4;
算法:
n
之间) 0
和1
(假设你的随机发生器被很好地分布) n < 0.30
返回值1
n < 0.42
返回值2
n < 0.87
返回值3