首页 > 解决方案 > 有没有更短的版本,有偏差的概率?

问题描述

import random as rd
def prob(times):
    h,t=0,0
    for _ in range(times):
        if rd.randrange(1,11)<=7:h+=1
        else:t+=1
    return h

返回偏硬币翻转 70% 正面的结果

标签: python-3.xalgorithmrandomprobability

解决方案


当你只返回h时,你实际上并不需要t。它也不需要使用randrange- 您可以使用random.

对于您可以使用的实际计数sum,布尔结果可以通过以下方式转换为 0 或 1 int

def prob(times):
    return sum(int(rd.random() < 0.7) for _ in range(times))

或者用 lambda 表示法:

prob = lambda times: sum(int(rd.random() < 0.7) for _ in range(times))

推荐阅读