我有一个“战斗”系统,攻击者具有例如战斗力100,防守者具有例如75.
但我现在陷入困境,我无法弄清楚如何找到胜利者.
我知道攻击者有25%的机会失去,但我无法想象这个剧本.
有任何想法吗?
提取0到100之间的随机数,或者如果您更喜欢0 … 1.
然后检查这个数字是否低于75.如果是,则攻击者获胜.
然后检查这个数字是否低于75.如果是,则攻击者获胜.
$p = rand(0,99); if ($p<75) // Attacker Won!
这有一个非常明确的概率解释.如果你随机提取0到100之间的数字,你有75%的可能性,这个数字将低于75.正是你需要的.
在这种情况下,您只需要rand()函数.
还要注意@Marek的建议,攻击者的获胜机会可能远低于75%. (阅读Marek的回答,指出获胜的几率为57%).
当您需要建模更复杂的概率密度函数时会出现问题,例如:
在这种情况下,您将需要更复杂的模型,例如gaussian mixture.