【发布时间】:2017-04-10 22:33:00
【问题描述】:
我正在使用数字生成器,目前正在使用下面的代码
from random import randint
print(randint(0,1))
虽然它可以工作,但我需要生成 0 或 1,但我需要生成器来生成 1 with a x (say 80%) 概率
如何在 python 中有效地实现这一点?
【问题讨论】:
标签: python
我正在使用数字生成器,目前正在使用下面的代码
from random import randint
print(randint(0,1))
虽然它可以工作,但我需要生成 0 或 1,但我需要生成器来生成 1 with a x (say 80%) 概率
如何在 python 中有效地实现这一点?
【问题讨论】:
标签: python
random.random() 将返回0 和1 之间的随机小数。使用此值来确定您的选择:
from random import random
print(0 if random() > 0.8 else 1)
当然,0.8 可以替换为任意概率 (60% -> 0.6)。
正如@TigerhawkT3 所说,如果您想根据随机概率执行操作,您可以使用较短的版本random() < 0.8 生成一个布尔变量,例如
x = random() < 0.8
if x:
print('hello world!')
【讨论】:
print(random() < 0.8)。
1/0 和 True/False 之间唯一明显的区别是它们在打印时的显示方式,并且不太可能向用户显示此结果。它更有可能在程序的后面使用,在这种情况下整数和布尔值几乎可以互换。