如何在python中以给定的概率生成随机整数?
我想根据给定的概率输出一个随机标志(0,1或2) e、 g 其中,如何在python中以给定的概率生成随机整数?,python,Python,我想根据给定的概率输出一个随机标志(0,1或2) e、 g 其中,p0+p1+p2=1和p0,p1和p2分别表示生成标志0、1和2的概率。 例如,gen_标志(0.8,0.1,0.1)很可能会输出一个零 我该怎么做?使用 p0等不必求和为1;如果它们还没有正常化,那么它们将正常化 choices始终返回一个列表,即使是在默认情况下,从一组可能的标志中只选择一个元素。@Chepner给出了最佳答案,但直到python 3.6,choices才添加到random中。对于早期的版本,我将接受输入,并制
p0+p1+p2=1
和p0
,p1
和p2
分别表示生成标志0、1和2的概率。
例如,gen_标志(0.8,0.1,0.1)
很可能会输出一个零
我该怎么做?使用
p0
等不必求和为1;如果它们还没有正常化,那么它们将正常化
choices
始终返回一个列表,即使是在默认情况下,从一组可能的标志中只选择一个元素。@Chepner给出了最佳答案,但直到python 3.6,choices才添加到random中。对于早期的版本,我将接受输入,并制作一个100项列表,分别包含0、1和2的潜在数量。然后使用随机模块选择一个项目
import random
gen_flag(p0, p1, p2):
myList = [0]*int(p0*100) + [1]*int(p1*100) + [2]*int(p2*100)
return myList[random.randint(0,99)]
请编辑问题,向我们显示您最近尝试的代码以及您遇到的问题。另请参见:和。您尝试了什么?假设您有一个介于0和1之间的随机数。您可以如何使用它来决定要输出哪个标志?您确实看过文档了吗?在多大程度上,
随机选择
的权重
不能满足您的需求?
from random import choices
flag = choices([0,1,2], [p0, p1, p2])[0]
import random
gen_flag(p0, p1, p2):
myList = [0]*int(p0*100) + [1]*int(p1*100) + [2]*int(p2*100)
return myList[random.randint(0,99)]