【问题标题】:Finding probability寻找概率
【发布时间】:2017-04-01 16:42:55
【问题描述】:

我正在尝试找出如何在掷硬币模拟器中计算出结果的几率。正面的概率为 50%,反面的概率为 50%。 我将如何计算它返回的结果发生的几率? 这是我的代码:

import random
head = 0
tail = 0
length  = int(input('How many coins do you want to flip? '))
for i in range(length):
    side = random.randint(0, 1)
    if side == 1:
        head = head + 1
    else:
        tail = tail + 1
print('There where ' + str(tail) + ' tails and ' + str(head) + ' heads')

【问题讨论】:

  • 在给定模拟次数的情况下,您是否要衡量获得相同数量正面和反面的概率?
  • 说你翻转它十次我想让它告诉你它给出的尾巴数量的概率,然后是正面的数量
  • 你要我告诉你:有p1概率会有1条尾巴,p2概率会有两条尾巴……?
  • 或者你想知道你在模拟中得到结果的概率是多少?
  • 你做一个模拟,掷硬币十次,得到 4 个正面。你想知道得到这 4 个正面的概率是多少?

标签: python probability


【解决方案1】:

你在模拟中得到的结果的概率可以这样打印:

print('Tail: ' + str(float(tail) / length) + ' Head ' + str(float(head)/length))

【讨论】:

  • 这显示了每个结果的百分比(正面/反面),而不是获得特定结果的机会。
【解决方案2】:

要计算这样的概率,您应该使用二项式系数。 - 这为您提供了所有可能的 h 头和 t 尾组合。将其除以 的所有可能组合,您就得到了概率。

要得到阶乘函数,感叹号,可以这样写:

def fact(n):
    if n == 0:
        return 1
    return n * fact(n-1)

这适用于所有正数。如果你想加快速度,你可以有一本字典,让你记住以前的电话。那将是:

_d = {0:1}
def fact(n):
    if n in _d: return _d[n]
    _d[n] = n * fact(n-1)
    return _d[n]

【讨论】:

  • 我如何在 python 中获得感叹号,我明白它是如何工作的,但它不是 reconised
猜你喜欢
  • 1970-01-01
  • 2013-03-03
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-12
  • 2023-03-04
  • 1970-01-01
相关资源
最近更新 更多