O cálculo que você está pedindo na verdade funciona ao contrário no SimCity, o número de agentes é obtido e, em seguida, executado por meio de uma função para retornar um número de população 'falsificado'.
A função em jogo que retorna a população é o seguinte;
simcity.GetFudgedPopulation = function (a) {a = "undefined"! == typeof a? a: simcity.gGlobalUIHandler.mLastPopulation; if (500 > = a) retorna a; if (40845 < a) retorna Math.floor (8,25 * a); a = Math.pow (a - 500, 1,2) + 500; return Math.floor (a)};
Isso funciona da seguinte maneira;
- se
a
for menor que / igual para 500, retorne a
- se
a
for maior que 501, mas menor que 40845, retorne (a-500) ^ 1,2 + 500
- se
a
for maior que 40845, retorne 8.25 * a
Aqui está um gráfico de como a população real se relaciona com a população exibida;
Para calcular o número de agentes que compõem sua população exibida, você usaria uma da seguinte fórmula ( cortesia de OrigamiRobot @ The Bridge), dependendo do tamanho de sua população;
se população
for:
- menor que / igual a 500, o valor da população é o número de agentes ativos na cidade
- maior que 501, mas menor que 336971, use
(população - 500) ^ (5/6 ) + 500 = a
- maior que 336971, use
population/8.25
Isso retornaria o número de agentes reais prese nt para sua população atual.