Я пытаюсь обновить переменную startPreyPopulationSize и startPredatorPopulation каждый раз, когда она итерации, но я не уверен, как это сделать, поскольку нижний для цикла влияет на верхний правый?Обновление моих переменных в цикле for?
//Equation to find out prey population size.
for(double rate = 0; rate <= numberOfPeriods; rate++) {
double partOne = startPreyPopulationSize/rate * (1 + RATE_A_BIRTH - RATE_B_PREDATION * (startPredatorPopulationSize/rate));
double updatedPreyPopulation = startPreyPopulationSize/(rate + 1);
updatedPreyPopulation = partOne;
System.out.printf("Period %5.0f: Prey Population %.2f; \n", rate, updatedPreyPopulation);
}
//Equation to find out predator population size.
for(double rate2 = 0; rate2 <= numberOfPeriods; rate2++) {
double partTwoEquation = startPredatorPopulationSize/rate2 * (1 - RATE_C_DEATHS + RATE_D_INCREASE * (startPreyPopulationSize/rate2));
double updatedPredatorPopulation = startPredatorPopulationSize/(rate2 + 1);
updatedPredatorPopulation = partTwoEquation;
System.out.printf("Period %5.0f: Predator Population %.2f; \n", rate2, updatedPredatorPopulation);
}
ОБНОВЛЕНО КОД Я основывая свою формулу от этого, если это помогает http://i.imgur.com/rUQ774q.jpg я знаю, что моя формула от так или иначе.
//Equation to find out prey population size.
for(double rate = 0; rate < numberOfPeriods; rate++) {
partOne = startPreyPopulationSize/rate * (1 + RATE_A_BIRTH - RATE_B_PREDATION * (startPredatorPopulationSize/rate));
currentPreyPopulationSize = startPreyPopulationSize/(rate + 1);
currentPreyPopulationSize = partOne;
System.out.printf("Period %5.0f: Prey Population %.2f; \n", rate, currentPreyPopulationSize);
partTwoEquation = startPredatorPopulationSize/rate * (1 - RATE_C_DEATHS + RATE_D_INCREASE * (startPreyPopulationSize/rate));
currentPredatorPopulationSize = startPredatorPopulationSize/(rate + 1);
currentPredatorPopulationSize = partTwoEquation;
System.out.printf("Period %5.0f: Predator Population %.2f; \n", rate, currentPredatorPopulationSize);
startPreyPopulationSize = currentPreyPopulationSize;
startPredatorPopulationSize = currentPredatorPopulationSize;
}
Используйте 1 для цикла только здесь и обновляйте оба в одном цикле. –
Не глядя на ваш код, почему нижняя петля повлияет на верхнюю? – nhgrif
И ваши расчеты ** ** ** выключены. Вам нужно получить код инициализации ** вне ** для циклов for. В противном случае вы повторно инициализируете популяции с каждой итерацией цикла, и поэтому популяции не изменятся. –