Python 我能';I don’我不明白这个问题中的人数是如何增长的(指数、线性等)

Python 我能';I don’我不明白这个问题中的人数是如何增长的(指数、线性等),python,algorithm,tree,Python,Algorithm,Tree,有人能告诉我N在这个问题中是如何增长的(以及如何对它进行编码) 家谱始于x和y的婚姻,他们有两个孩子。其中两个孩子结婚了,一个仍然单身。在这个特殊的家庭里,同样的公式每次都会重复。每个人都有三个孩子,其中两个结婚,一个保持单身。编写一个函数,确定第n代人结婚时树中的人数。(包括配偶) x和y的孩子是第一代 这就是我所尝试的: def generations(n): people = 0 for i in range(1, n): generation = i

有人能告诉我N在这个问题中是如何增长的(以及如何对它进行编码)

家谱始于x和y的婚姻,他们有两个孩子。其中两个孩子结婚了,一个仍然单身。在这个特殊的家庭里,同样的公式每次都会重复。每个人都有三个孩子,其中两个结婚,一个保持单身。编写一个函数,确定第n代人结婚时树中的人数。(包括配偶)

  • x和y的孩子是第一代
这就是我所尝试的:

def generations(n):
    people = 0
    for i in range(1, n):
        generation = i * 2 - 1
        people += generation
    return people

i*2-1是一个线性方程,实际上并不是对一代又一代人的准确解读

这听起来像是个家庭作业问题。因此,想象一下,两个人有3个孩子,两个人结婚(那一代有5个是通过婚姻),那一代有2个家庭有3个孩子(6)4个结婚(这一代有10个是通过婚姻)。下一代:4个家庭有孩子结婚->20。。。发射型计算机断层扫描仪。我假设你需要找到一个方程来模拟这个

P(0) = 2
P(1) = 2P(0) + 1
P(2) = 4P(0) + 2
P(3) = 8P(0) + 4
P(4) = 16P(0) + 8
...
P(N) = (2**N)P(0) + 2**N-1
P(N) = (2**N-1)(2P(0) + 1)
P(N) = (2**N-1)(5)
so the total number of people is:
P(0) + P(1) + P(2) ... + P(N) = 2 + 5 ( (2 ** N) - 1)
你的问题的函数是5((2**N)-1)+2,它不是线性的。它实际上是指数型的


为了更好地理解数学部分,您可以查看它。

请用您尝试过的代码更新您的问题。@quamrana完成!