猿问

我无法理解这个问题的人数是如何增长的(指数、线性等)

有人能告诉我 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


动漫人物
浏览 86回答 2
2回答

莫回无

i * 2 - 1 是一个线性方程,实际上并不是几代人的准确解读。这听起来像是一个家庭作业问题。因此,想象一下,2 个人有 3 个孩子,2 个结婚(这一代有 5 个孩子结婚),那一代有 2 个家庭有 3 个孩子(6 个)4 个结婚(这一代有 10 个孩子结婚)。下一代: 4 个家庭有孩子给予 (12) 婚姻 -> 20... 等。我假设您需要找到一个方程来对此进行建模。

明月笑刀无情

P(0) = 2P(1) = 2P(0) + 1P(2) = 4P(0) + 2P(3) = 8P(0) + 4P(4) = 16P(0) + 8...P(N) = (2**N)P(0) + 2**N-1P(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,并且它不是线性的。它实际上是指数级的。
随时随地看视频慕课网APP

相关分类

Python
我要回答