/** * Method for calculating & setting crop need * * @param crop EnumFood * @param tonsConsumed 2014 production + imports - exports * @param percentUndernourished 2014 % of population undernourished */ public final void setCropNeedPerCapita( EnumFood crop, double tonsConsumed, double percentUndernourished) { for (AgriculturalUnit unit : entities) { unit.setCropNeedPerCapita(crop, tonsConsumed, percentUndernourished); } double population = getPopulation(START_YEAR); double tonPerPerson = tonsConsumed / (population - 0.5 * percentUndernourished * population); cropNeedPerCapita[crop.ordinal()] = tonPerPerson; }
/** * Method for setting crop need when already known (e.g., when copying). * * @param crop EnumFood * @param tonPerPerson 2014 ton/person */ public final void setCropNeedPerCapita(EnumFood crop, double tonPerPerson) { // Divide it up amongst the units. // double perUnit = tonPerPerson / entities.size(); double remainder = tonPerPerson % (entities.size() * perUnit); for (AgriculturalUnit unit : entities) { unit.setCropNeedPerCapita(crop, perUnit + remainder); remainder = 0; } cropNeedPerCapita[crop.ordinal()] = tonPerPerson; }