作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在无偏掷硬币中,H 或 T 出现 50% 的次数。
但我想模拟硬币,它给出概率为“p”的 H 和概率为“(1-p)”的 T。
类似这样的:
def flip(p):
'''this function return H with probability p'''
# do something
return result
>> [flip(0.8) for i in xrange(10)]
[H,H,T,H,H,H,T,H,H,H]
最佳答案
random.random()
返回 [0, 1) 范围内的均匀分布伪随机 float 。该数字小于 [0,1) 范围内的给定数字 p
,概率为 p
。因此:
def flip(p):
return 'H' if random.random() < p else 'T'
一些实验:
>>> N = 100
>>> flips = [flip(0.2) for i in xrange(N)]
>>> float(flips.count('H'))/N
0.17999999999999999 # Approximately 20% of the coins are heads
>>> N = 10000
>>> flips = [flip(0.2) for i in xrange(N)]
>>> float(flips.count('H'))/N
0.20549999999999999 # Better approximation
关于python - 如何模拟有偏硬币的翻转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/477237/
我是一名优秀的程序员,十分优秀!