java优先级问题
已知有 1,3,5,7,9,11,13,15,17,19...这些整数
需要随机拿出里面的一个整数 但是有优先级 比如9的优先级高 出现的概率为80%
也就是说 我要随机拿一个整数 优先级高的肯定出现的概率比较高
请问如何控制优先级 或者说是有什么方法 设置这些优先级 谢谢了
------解决方案--------------------其实不复杂,假定 A B C D 三个签
权重分别为: A:3 B:4 C:5 D:1
那么建立一个列表,将各权重进行累进计算,得到:
3:A 7:B 12:C 13:C
然后在1~13中取随机数:rand。
然后从头到尾看看rand落在哪个区间就知道应该选谁了。
比如:rand=11,就是C;rand=4,就是B;绝对符合概率要求。
------解决方案--------------------