产生随机数的概率为1

use*_*234 1 python

我正在使用目前使用以下代码的数字生成器

from random import randint
print(randint(0,1))
Run Code Online (Sandbox Code Playgroud)

虽然它工作,我需要生成0或1,但我需要生成器生成1 with a x (say 80%)概率

我怎么能在python中有效地实现这一点?

Uri*_*iel 5

random.random()将在0和之间返回一个随机小数1.使用此值确定您的选择:

from random import random 
print(0 if random() > 0.8 else 1)
Run Code Online (Sandbox Code Playgroud)

当然,0.8可以用任何概率(60% -> 0.6)代替.


正如@ TigerhawkT3所指出的,random() < 0.8如果你想根据随机概率做一个动作,你可以用较短的版本生成一个布尔变量,比如

x = random() < 0.8
if x:
    print('hello world!')
Run Code Online (Sandbox Code Playgroud)