python-3.x - 有没有更短的版本,有偏差的概率?
问题描述
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% 正面的结果
解决方案
当你只返回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))
推荐阅读
- java - 使用堆栈(Java)在迷宫中的老鼠
- c# - 如何从 InkCanvas UWP 发送实时笔画数据
- java - 如何使用以下约束调整我的 0-1 背包代码 [JAVA]
- qt - 在 QTableView 如何检查是否选择了整行(通过单击水平标题)?
- firebase - 如何使用 Ionic 4 删除 Firebase Cloud Firestore 中的元素数组
- javascript - KnpLabs/snappy bundle (wkhtmltopdf) 不呈现 Chart.js 图表
- c - 使用 chdir 更改当前工作目录
- swift - 转换'[Publishers.Map
]' 到 [ProductRep] - javascript - Lerna bootstrap 不链接本地依赖项?
- arrays - 使用索引和数组创建带有函数的数组?