找到i&的最大价值的最佳组合j,但不超过金额,任何想法?
$amount = 20000;
$max_area = 1000;
for ($i=0; $i<=100; $i+=0.1) {
for ($j=0; $j<=100; $j+=0.1) {
$area = $i*$j;
$cost = $i*1200 + ($i+$j*2) * 2500;
if($cost > $amount && $area > $max_area) {
break;
}
}
}
答案 0 :(得分:2)
您可能最好找到一个参数化公式,该公式可以测量任何特定i和j的“效率”,然后使用分析方法找到绝对最大值,再次参数化。你可以在纸上完成所有这些。然后将生成的公式转换为PHP。
答案 1 :(得分:0)
您只是尝试实施约束优化问题解决方案。
如果你把代码拿走一分钟,让我们一起检查。
您的模型看起来如下(如果您提供了可能有用的背景信息)
成本= 1200 * i + 2 *(i + j)+2500
area = i * j
最大化,受限于
成本&lt; max_amount(但您在if语句中键入了费用&gt;金额)
区域&gt; max_area
您应该使用分析方法来解决它。由于用单纯形解决不够简单(因为它不是线性的),你必须去heuristics