Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/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 - Fatal编程技术网

如何在python中以给定的概率生成随机整数?

如何在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中。对于早期的版本,我将接受输入,并制

我想根据给定的概率输出一个随机标志(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中。对于早期的版本,我将接受输入,并制作一个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)]