首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

概率选中的算法兑现

2012-10-06 
概率选中的算法实现一个常见的场景,在游戏中打一个怪物,10%几率出现miss,那么这次攻击是命中还是miss呢?我

概率选中的算法实现
一个常见的场景,在游戏中打一个怪物,10%几率出现miss,那么这次攻击是命中还是miss呢?我们可以用随机数来实现,miss的范围是[1,10],命中的范围是[11,100],然后我们取一个随机数,比如60就是命中了,如果不幸取到8就是miss了。只要测试的次数足够多,那么miss的比例将会趋向于10%。

再举多个候选数的例子。比如a概率为20%,b概率为30%,c概率为40%,d概率为10%,那么他们的概率值范围分别是:
a[1,20]
b[21,50]
c[51,90]
d[91,100]
然后取一个[1,100]的随机数,落到谁的范围谁就是选中了。

算法描述如下:
1.依次(顺序可随机)将各项按概率值从原点开始放在一维坐标上首尾相连,这样每一项对应一个取值区间
2.在总区间范围内随机选取一个点,落在哪一项对应的区间就选中哪一项

java实现:


参考:http://blogread.cn/it/article.php?id=4102

热点排行