有人能告诉我,N是如何在这个问题中增长的(以及如何编码)吗?
家谱从x和y的结合开始,他们有两个孩子。这些孩子中有两个结婚了,另一个仍然单身。在这个特殊的家庭中,同样的公式每次都会重复。每个人都有三个孩子,其中两个结婚了,一个仍然单身。编写一个函数,以确定第N代人结婚时树上的人数。(包括配偶)
这就是我试过的:
def generations(n):
people = 0
for i in range(1, n):
generation = i * 2 - 1
people += generation
return people发布于 2020-09-26 20:39:12
I*2-1是一个线性方程,实际上并不是几代人的准确解读。
这听起来像是家庭作业问题。因此,想想看,两个人有三个孩子,两个结婚(这一代人中有五个),那一代人有两个有三个孩子的家庭(6),四个结婚(这一代人中有10个)。下一代:有4个家庭有孩子,给(12) -> 20结婚。ect。我假设你需要找到一个方程来建立这个模型。
发布于 2020-09-27 01:16:37
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,它不是线性的。实际上是指数级的。
为了更好地理解数学部分,您可以查看https://en.wikipedia.org/wiki/1_%2B_2_%2B_4_%2B_8_%2B_%E2%8B%AF。
https://stackoverflow.com/questions/64082168
复制相似问题