从技能水平确定赢率百分比

时间:2010-11-21 03:23:03

标签: math probability

我正在制作一个程序,其中两个玩家在“战斗”中彼此面对,每个玩家都有一个技能等级,由1到100之间的数字表示,这个数字用于确定哪个玩家更好,例如,玩家A有50,玩家B有100,然后B有50%的几率赢得战斗,这个数字知道两个玩家的技能等级的好方法是什么?

我尝试了不同的方式,例如添加两个技能等级并在此范围内选择一个随机数,如果数字小于玩家技能,那么他就赢了但是我不确定这是否是一个好方法,我认为概率是关闭的。我也试图使用规则,例如,如果他们拥有相同的技能,那么50%(任何人都可以赢)如果一个是另一半,那么对于较低级别的玩家有25%的机会等等但这很快变得复杂。有关如何进行此计算的任何指示?

提前感谢您的帮助

-hei

1 个答案:

答案 0 :(得分:0)

  

如果玩家A有50而玩家B有100,那么B有更多的机会赢得战斗

如果你的意思是玩家B应该经常赢两倍,那么这就行了:

r = random(1, A+B)
if r <= A
  winner = 'A'
else
  winner = 'B'

获胜者A将赢得50/150或1/3的时间。获胜者B将赢得2/3的时间(两倍)。

也许你的意思是距离是重量。例如,10对5应该具有5%的优势。

然后你可以尝试(假设B >= A):

r = random(1, 200 + B - A)
if r <= 100 
  winner = 'A'
else
  winner = 'B'

所以如果A == B那么偶然的机会。