【发布时间】:2021-05-03 23:51:27
【问题描述】:
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))
我不知道如何解决这个问题。如果返回probability_not_angry(n-1, p) +probability_not_angry(n-2, p),它只计算n,所以我必须改变函数中的p,但现在知道该怎么做了。
谢谢
【问题讨论】:
标签: python recursion data-structures