r中的递归关系程序

问题描述

考虑一个家庭在生完儿子和女儿之前要生孩子的问题。

使用递推关系确定 E(N(s,d)) 家庭在达到 s 个儿子和 d 个女儿的目标之前可以期望拥有的孩子数量

我首先提出了递归公式

E(N(s,d)) = 1 + pE(N(s-1,d)) + qE(N(s,d-1))

我将如何创建一个程序来在 r 中执行这个公式?我遇到了麻烦,因为每次递归都会分出 2 个新调用一个用于 s-1 情况,一个用于 d-1 情况),所以我在尝试实施有用的解决方案方面运气不佳。

我用python编写了一个程序来模拟答案,如下所示:

from random import random
list_of_results = []
for j in range(100000):
    m = 0
    n=0
    i=0
    while n < 3 or m < 2:
        if random() >.5:
            n=n+1
        else:
            m=m+1
        i=i+1
    list_of_results.append(i)
print(sum(list_of_results)/len(list_of_results))

这是一个家庭作业问题,所以我并不是真的在寻找答案——只是一直在思考为什么我没有得到预期的结果

解决方法

结果是在我对 d 或 s = 0 的评估中,我有错误的公式。在纸上追查之后,我意识到我的错误。修正了这些情况的公式,现在它返回了正确的答案