如何设置创造某事的百分比机会

时间:2017-12-20 23:58:44

标签: python python-2.7 random

我正在打一场格斗游戏。它就像有两个球员。他们有100马力,他们在战斗时选择0-100之间的攻击值。在他们选择价值之后,他们应该有%(100值)成功进行此次攻击的机会。例如,如果他们选择值60,他们有40%的机会成功完成这次攻击。请你帮忙。抱歉我的英语不好。

2 个答案:

答案 0 :(得分:2)

您想要的是在0100之间生成一个随机数,并检查它是否大于您插入的数字。

例如,如果输入50,则随机数将大于(或相等)的可能性为50%,低50%。如果输入10,则该数字有90%的可能性更大。

您可以使用SQLfiddle生成0到100之间的随机数。然后它就是你的价值的简单比较,这应该就是你所需要的。

答案 1 :(得分:0)

通常,在统计学中,机会表示为0到1之间的数字,因此0.6表示60%的几率。然后,如果你想获得0.6的成功机会,你可以通过选择0到1之间的随机浮点数来判断是否成功,并检查它是否小于或等于0.6。

直观地说,你可以这样看待它:

|-----------------------------------|-----------------------|
0                                  0.6                      1

如果你在这一行上选择一个随机点 - 你的0到1之间的随机数 - 它在0.6的左侧的几率是...... 0.6(60%)。

您可以使用random.uniform

import random
success_rate_percentage = 60
success = random.uniform(0, 1) <= success_rate_percentage / 100.0

现在简单检查一下这是否正常运行:

>>> import random
>>> success_count = 0
>>> for _ in range(100000):
...     if random.uniform(0, 1) <= 0.6
...         success_count += 1
...
>>> success_count
59954

预期结果约为0.6 * 100000 = 60000次成功,实际结果为59954,因此足够接近。