日期:2014-05-20  浏览次数:20557 次

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;绝对符合概率要求。
------解决方案--------------------
探讨
其实不复杂,假定 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;绝对符合概率要求。