Python 如何设定一个百分比的机会来做某事

Python 如何设定一个百分比的机会来做某事,python,python-2.7,random,Python,Python 2.7,Random,我正在做一个格斗游戏。好像有两个玩家。他们有100点生命,战斗时选择0-100之间的攻击值。选择值后,他们应该有%(100值)的机会成功进行此攻击。例如,如果他们选择值60,则有%40的机会成功进行此攻击。请提供帮助。对不起,我的英语不好。您想要的是在0和100之间生成一个随机数,并检查它是否大于插入的数字 例如,如果输入50,则随机数大于(或等于)的概率为50%,小于50%。如果输入10,则该数字有90%的可能性会更大 您可以使用生成介于0和100(含)之间的随机数。然后,这是一个与你的价值的

我正在做一个格斗游戏。好像有两个玩家。他们有100点生命,战斗时选择0-100之间的攻击值。选择值后,他们应该有%(100值)的机会成功进行此攻击。例如,如果他们选择值60,则有%40的机会成功进行此攻击。请提供帮助。对不起,我的英语不好。

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

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


您可以使用生成介于0和100(含)之间的随机数。然后,这是一个与你的价值的简单比较,这应该是你所需要的。

通常,在统计学中,概率表示为0到1之间的数字,因此0.6代表60%的概率。然后,如果希望获得0.6的成功机会,可以通过选择0到1之间的随机浮点数并检查其是否小于或等于0.6来确定成功与否

直觉上,你可以这样看:

|-----------------------------------|-----------------------|
0                                  0.6                      1
如果你在这条线上选一个随机点,你的随机数在0到1之间,它在0.6左边的概率是。。。0.6(60%)

您可以为此使用:

import random
success_rate_percentage = 60
success = random.uniform(0, 1) <= success_rate_percentage / 100.0
随机导入
成功率百分比=60
成功=随机。统一(0,1)>>导入随机
>>>成功计数=0
>>>对于范围内的(100000):
...     如果随机。均匀(0,1)>>成功计数
59954

预期结果约为0.6*100000=60000次成功,实际结果为59954次,所以这已经足够接近了。

所以如果他们选择
0
…我想你不想让他们选择,不是吗?也许你想为他们选择?所以
导入随机;打印random.random()*100
。更好的
导入随机;打印random.randint(1100)
那么你的问题是,“random模块是如何工作的?”?这太多了,一个问题回答不了。我建议你尽力做你需要做的事情,当你有具体问题时再回来。您可以通过翻译器获取模块并运行它,这将有助于您从总体上理解模块。@smac89如果选择较低的值,则表示您的攻击较弱,成功几率较高。如果你选择了一个高值,你的攻击力很强,成功的几率很低。两个极端——总是成功但不造成伤害的攻击,或者造成最大伤害但从未成功的攻击——都是无用的,所以我不明白为什么有人会选择这两种攻击。不过,根据你的运气,在高伤害+高风险还是低伤害+低风险之间做出选择是有道理的0-100是101的范围,这是一个非常好且被低估的答案!
>>> import random
>>> success_count = 0
>>> for _ in range(100000):
...     if random.uniform(0, 1) <= 0.6
...         success_count += 1
...
>>> success_count
59954