Catástrofe malthusiana

Thomas Malthus descreveu o que hoje é conhecido como uma catástrofe malthusiana. Segundo ele, a produção de alimentos aumenta em uma quantidade fixa, enquanto a população cresce em uma porcentagem. Portanto, a oferta de alimentos logo seria insuficiente para a população.

Sua tarefa é descobrir quando isso ocorrerá. Neste desafio, suponha que uma população de 1 precise de 1 unidade de produção de alimentos. Tanto a produção de alimentos quanto a população começam em 100. O ano inicial é 0.

A catástrofe ocorre quando a população ultrapassa a produção de alimentos.

O método receberá:

  • foodGrowth ⁠— um número inteiro ⁠— o aumento anual da produção de alimentos.
  • populationMultiplier ⁠— um número de ponto flutuante ⁠— o multiplicador de crescimento anual da população.

##// Exemplos

malthusian(4255, 1.41) ➞ 20
// { food_prod: 85,200, pop: 96,467.77..., year: 20 }

malthusian(9433, 1.09) ➞ 107
// { food_prod: 1,009,431, pop: 1,010,730.28..., year: 107 }

malthusian(5879, 1.77) ➞ 12
// { food_prod: 70,648, pop: 94,553.84..., year: 12 }

##// Observações

  • Retorne o ano em que a população ultrapassa a produção de alimentos, e não o ano seguinte.
  • Não cometa o erro de acrescentar um ano e depois calcular as mudanças na produção de alimentos e na população. Se fizer isso, você deixará de considerar o ano 0.
  • Se a população e a produção de alimentos forem iguais, isso não será uma catástrofe.

Exemplo em Java

assertEquals(31, Program.malthusian(3900, 1.26));