【问题标题】:Random number generation with a x chance of it being 1 [duplicate]随机数生成,其概率为 1 [重复]
【发布时间】:2017-04-10 22:33:00
【问题描述】:

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

from random import randint
print(randint(0,1))

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

如何在 python 中有效地实现这一点?

【问题讨论】:

    标签: python


    【解决方案1】:

    random.random() 将返回01 之间的随机小数。使用此值来确定您的选择:

    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() &lt; 0.8)
    • @Fredrik 他的评论很好。他建议如果他想使用以这种方式确定的变量来确定动作,他可以​​使用这个较短的版本来创建一个布尔变量
    • 这就是我说“实际上说”的原因。 1/0True/False 之间唯一明显的区别是它们在打印时的显示方式,并且不太可能向用户显示此结果。它更有可能在程序的后面使用,在这种情况下整数和布尔值几乎可以互换。
    猜你喜欢
    • 2017-10-01
    • 2017-03-24
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2014-10-06
    • 1970-01-01
    • 2016-01-26
    • 2013-04-21
    相关资源
    最近更新 更多