#python-2.7
#python-2.7
Вопрос:
Я понятия не имею, что там не так:
current_pop = 7370000000
print "So the current population is", str(current_pop)
doubled_pop = 14740000000
year_1 = 2
year = 0
while current_pop != doubled_pop:
if current_pop != doubled_pop:
current_pop = current_pop * 2
year = 1
else:
year = 0
print year
Я уже пытался оценить время, которое всплывает к году_1. Но это продолжает давать мне year = 1
Комментарии:
1. Пожалуйста, вставьте свой код и не предоставляйте изображение
2. Это продолжает давать вам результат
1
потому что для удвоения населения требуется ровно один год, когда население удваивается каждый год, как утверждает ваш код!
Ответ №1:
Проблема в вашей программе в том, что вы предполагаете, что население удваивается каждый год! Поэтому, конечно, при таких условиях население удвоится ровно за один год. К счастью, наша ситуация не так ужасна. Согласно данным, предоставленным Всемирным банком, годовой темп прироста населения мира в 2015 году составил 1.182%.
Ваш цикл был излишне сложным, но, что более важно, ваш тест был неправильным. У вас (и предыдущего ответа) было:
while current_pop != doubled_pop:
Но этот тест обычно завершается неудачей, поскольку маловероятно, что население будет расти со скоростью, которая удобно достигает удвоения начальной численности населения при точном делении на год. Вам нужно использовать неравенство:
while current_pop < doubled_pop:
Вот программа, которая работает:
current_pop = 7370000000
growth_rate = 0.01182
print "So the current population is", str(current_pop)
doubled_pop = 2 * current_pop
year = 0
while current_pop < doubled_pop:
current_pop = current_pop (current_pop * growth_rate)
year = 1
print year
И вот результат:
So the current population is 7370000000
59