有人能告訴我 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
2 回答

莫回無
TA貢獻1865條經驗 獲得超7個贊
i * 2 - 1 是一個線性方程,實際上并不是幾代人的準確解讀。
這聽起來像是一個家庭作業問題。因此,想象一下,2 個人有 3 個孩子,2 個結婚(這一代有 5 個孩子結婚),那一代有 2 個家庭有 3 個孩子(6 個)4 個結婚(這一代有 10 個孩子結婚)。下一代: 4 個家庭有孩子給予 (12) 婚姻 -> 20... 等。我假設您需要找到一個方程來對此進行建模。

明月笑刀無情
TA貢獻1828條經驗 獲得超4個贊
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,并且它不是線性的。它實際上是指數級的。
添加回答
舉報
0/150
提交
取消