Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 采取行动的机会百分比_Python_Random - Fatal编程技术网

Python 采取行动的机会百分比

Python 采取行动的机会百分比,python,random,Python,Random,简单问题: percentage_chance = 0.36 if some_function(percentage_chance): # action here has 36% chance to execute pass 如何编写某些函数,或包含概率百分比的表达式来解决此问题?您可以使用: 随机导入 如果随机。随机() 打印('aaa') 随机导入 如果随机。随机数(0100)

简单问题:

percentage_chance = 0.36

if some_function(percentage_chance):
   # action here has 36% chance to execute
   pass
如何编写
某些函数
,或包含
概率百分比
的表达式来解决此问题?

您可以使用:

随机导入
如果随机。随机()
打印('aaa')
随机导入
如果随机。随机数(0100)<36:
做某事

此代码返回1.36%的时间

import random
import math
chance = 0.36
math.floor( random.uniform(0, 1/(1-chance)) )

为了让它更清晰易读:

def可能(偶然):
返回random.random()
如果可能(35/100):
做那件事

太好了,现在我有random.randrange(1100)在range(1,int(chance*100))中,但我认为这不对。random.random返回一个浮点数,一个连续的范围,而randrange默认返回一个int,因此它是范围内的一组离散点。如果您的百分比概率介于离散点之间,则类似于将其向上或向下四舍五入到最接近的值。最好使用
randrange
函数。该注释需要限定
randrange
将改变行为。
import random
if random.randint(0,100) < 36:
    do_stuff()
import random
import math
chance = 0.36
math.floor( random.uniform(0, 1/(1-chance)) )