В моем классе я должен рассчитать цены 18 разных зданий, которые имеют разные цены и доход. Они также имеют изменения в цене, когда увеличивается количество денег в здании.Алгоритм для сравнения нескольких значений
Например: Здание начинается от 40 долларов, когда количество равно 0. Цена увеличивается на 4 для каждого количества. Так что, если у вас есть 1, цена на покупку следующего здания будет равна 44 в состоянии 40. Так что это метод, который рассчитает цену просто отлично.
public float getBuildingPrice(float quantity)
{
float buildingNum = quantity;
float startingPrice = 40;
float costIncrease = 4;
float finalPrice;
finalPrice = startingPrice + (costIncrease*buildingNum);
return finalPrice;
}
Метод выше возвращает цену, и я разделил рассчитанную цену с доходом, который поступает в здание, как это. 10 является доход
float storageWorth = buildingPrice/10;
Дело я не в состоянии сделать это, чтобы узнать количество различных строительных пользователь может купить наиболее эффективным способом (то есть самый высокий доход, но низкие расходы) Так оно и должно быть самым низким Цена/доход, который должен выполнять условие, но также учитывая, что он должен находиться в бюджете, в котором пользователь вводит ключ. Всегда есть изменение цены, и я не знаю, как сравнивать несколько значений (18 значений) с дополнительное условие, чтобы сохранить в бюджете.
Например
Farm
- доход - 1
- 5 зданий
- Приращение 4
- Цена 40 + (5 * 4) = 60 Цена над доходами = 60
Ручка
- Доход - 5
- 4 зданий
- Приращение 20
- Цена 200 + (4 * 20) = 280 Цена над доходами 280/5 = 56
Так что означает сказать, что следующее здание, которое должен купить пользователь, - это перо, потому что оно имеет более низкую цену/доход. Есть также шансы, что цена над доходом обоих зданий будет такой же, как если бы здание достигло 5 для строительства пера, и цена над доходом ручки и фермы составит 60.
Вы действительно должны использовать 'double's вместо' float's. – arshajii
@arshajii Или даже лучше '' BigDecimal'', для хранения валют. – wassup
Звучит как [проблема линейной оптимизации] (https://en.wikipedia.org/wiki/Linear_programming) для меня. См. Http://stackoverflow.com/questions/260442/linear-programming-tool-libraries-for-java для библиотек Java. –