小编Aca*_*dog的帖子

计算概率的递归函数

A 要么以 1 - p 的概率赶上他的公共汽车,要么以 p 的概率错过它。在前一种情况下,他准时到办公室,在后一种情况下他迟到了。A 知道如果 A 连续两天迟到,他的老板会生气。对于给定的天数 n 和给定 p,A 想要计算 n 天后他的老板不会生气的概率。

例如,如果 n = 2,那么让老板生气的唯一方法就是两天都迟到。因为,不同天的事件是独立的,所以这个事件的概率是p*p = p^2。所以,不惹老板生气的概率是1 - p^2

def probability_not_angry(n, p):
  if n == 0:
    return 1
  if n == 1:
    return 1
  return probability_not_angry(n-1, p) + probability_not_angry(n-2, p)
  
# should print 0.5
print(probability_not_angry(4, 0.5))
# should print 0.4375
print(probability_not_angry(2, 0.75))
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题。如果返回probability_not_angry(n-1,p)+probability_not_angry(n-2,p),它只计算n,所以我必须改变函数中的p,但现在知道怎么做。

谢谢

python recursion data-structures

2
推荐指数
1
解决办法
171
查看次数

标签 统计

data-structures ×1

python ×1

recursion ×1