プロが教えるわが家の防犯対策術!

ある国のある年の人口は6480万人で、その後、最初の人口増加率は0.793%でしたが、その次の人口増加率は0.012%減りました。この後、人口増加率の減少幅は0.00006%ずつ減り、最終的に人口増加率は減少しなくなりました。この後、人口増加率は0.0002%ずつ増え、最終的に人口増加率は0%になりました。ただし、最後の0%になるときのみ、増加幅は0.0002%以下なら何%でもよいものとします。
この時、
1. 人口のピークは何年後で、その時の人口は何人ですか?
2. 静止人口は何人ですか?

質問者からの補足コメント

  • 最後の増加幅は正です

      補足日時:2021/01/20 11:42

A 回答 (2件)

この問題は正しいのですか?静止するまで2000年以上かかるんだけど。



以下プログラムです。Python3です。_は半角スペースです。

from functools import lru_cache

@lru_cache(maxsize=None)
def perwidth(n):
_if n == 0:
__return 0.00793
_elif 1 <= n <= 200:
__return round(perwidth(n-1) - (0.00012-0.0000006*(n-1)),7)
_else:
__if perwidth(n-1) + 0.000002 < 0:
___return round(perwidth(n-1) + 0.000002,7)
__else:
___return 0

@lru_cache(maxsize=None)
def population(n):
_if n == 0:
__return 648000000
_else:
__return int(population(n-1) * (1+perwidth(n-1)))

print("現在の人口:" + str(population(0)))
print("現在から1年後までの人口増加率:{0:.7f}".format(perwidth(0)))

for n in range(1,3000):
_print(str(n) + "年後の人口:" + str(population(n)))
_print("{0}年後から{1}年後までの人口増加率:{2:.7f}".format(n,n+1,perwidth(n)))

実行結果(問いに関係するところのみ)

82年後から83年後までの人口増加率:0.0000826
83年後の人口:878374363
83年後から84年後までの人口増加率:0.0000118
84年後の人口:878384727
84年後から85年後までの人口増加率:-0.0000584
85年後の人口:878333429
85年後から86年後までの人口増加率:-0.0001280
86年後の人口:878221002

(1)84年後、8億7838万4727人

2262年後から2263年後までの人口増加率:-0.0000060
2263年後の人口:8903164
2263年後から2264年後までの人口増加率:-0.0000040
2264年後の人口:8903128
2264年後から2265年後までの人口増加率:-0.0000020
2265年後の人口:8903110
2265年後から2266年後までの人口増加率:0.0000000
2266年後の人口:8903110

(2)890万3110人

本当にこれでいいのか?この前の質問でも言いました通り、私はIT企業勤めでも、フリーランスのプログラマーでもないので、プログラムの内容はよく吟味してください。
    • good
    • 0

また似たような質問ですか?



でも、今回は人口変化率が不可解です。

>最終的に人口増加率は減少しなくなりました。この後、

「最終的に」とはどういうことですか?
さらに、「最終的に」の「この後」とはどういうことでしょうか?

>最終的に人口増加率は0%になりました。

「最終的に」が2つある意味がわかりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!