gpt4 book ai didi

java - 比较多个值的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:01:55 25 4
gpt4 key购买 nike

在我的课上,我必须计算 18 栋不同价格和收入的不同建筑物的价格。当建筑物的数量增加时,它们的价格也会发生变化。

例如:当数量为 0 时,建筑物的起价为 40 美元。每增加一个数量,价格递增 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 个值)与额外条件进行比较以保留在预算中.

例如

农场

  • 收入 - 1
  • 5 栋建筑
  • 增加 4
  • 价格 40 + (5 * 4) = 60价格收入比 = 60

  • 收入 - 5
  • 4 栋建筑
  • 增加 20
  • 价格 200 + (4 * 20) = 280价格收入比 280/5 = 56

意思是说用户应该购买的下一座建筑是一支钢笔,因为它的价格/收入较低。也有可能两个建筑物的价格收入比相同,如果建筑物达到 5 以 build 围栏,那么围栏和农场的价格收入比都将是 60。

最佳答案

这是您的问题的公式,最终是一个混合整数和非线性规划问题:

对于所有建筑类型 i 让我们定义:

  • Pi : 建筑类型 i
  • 的价格
  • Ci : 建筑类型 i
  • 的价格增量
  • Mi:建筑类型i
  • 的收入
  • B:预算
  • Ni :购买的 i 类型建筑物的数量。

购买第 i 类建筑 Ni 等于:

Sum for j=1 to Ni    Pi + (j - 1) × Ci = Ni (Pi + ( Ni - 1) / 2 × Ci)

混合整数非线性规划公式:

Maximise Sum for i     Ni × Mi

Subject to : sum for i Ni (Pi + (Ni - 1) / 2 ×Ci) <= B

请注意,Pi、Ci、Mi 和 B 是常量。决策变量为Ni

另一种解决方案是一次购买建筑物,按照以下比例选择每笔投资收入最高的建筑物:

Mi / (Ni (Pi + ( Ni - 1) / 2 × Ci))

在每一步中,您都计算出具有最大比率的建筑物,购买建筑物,扣除预算价格并重复直到预算用完。我没有证据证明您会按照此算法获得最佳结果。

第三种方案伪代码(暴力破解):

(income, index_list) function maximize_income(i, b)
if i > last_building_type
return 0, []
endif
max_income = 0
max_income_index = 0
while b >= P(i) - (j-1) * C(i)
b = b - P(i) - (j-1) * C(i)
(income, index_list) = maximize_income(i+1, b)
income = income + j * M(i)
if income > maximum_income
maximum_income = income
maximum_income_index = j
endif
endwhile
add maximum_income_index to index_list
return maximum_income, index_list
end function

index_list 是一个数组,其中包含每种类型建筑物的数量

关于java - 比较多个值的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18147301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com