我想以已知的概率在x
和y
之间生成一个随机数。例如,使用Output=randint(0,2)
我知道Output
等于1的可能性为33%。
同样,如果Output=randint(0,3)
我知道Output
等于1的可能性为25%。
如何生成与上述类似的随机数,以确保Output
等于1的概率为40%?
非常感谢
不确定你的目标是什么,通过提供固定范围获得40%,而不是操纵结果?
例如,这将给出40%的值1和30%的2或3
num = randint(0,9)
if num <= 3:
num = 1
elif num <= 6:
num = 2
else:
num = 3
在这里,我有一个替代解决方案,看起来更短,因为没有if
语句,它应该更快。
此外,您可以轻松更改要返回的数字,概率为60%
a = [1,1,0,0,0]
num = a[randint(0,4)]
作为替代方案,这里有一个版本的单行:
num = list((1,1,0,0,0))[randint(0,4)]