你好,StackOverflow社区
首先,我想解释一下,我昨天发布了这个问题,但意识到人们并不真正理解问题的所在。因此,我删除了我的问题和问答,以获得一个更清楚的解释。如果不允许这样做,我很抱歉,再也不允许这样做了。
我有一张叫“点菜”的桌子,更不用说糖果了。糖果商可以以不同的价格和不同的包装尺寸出价和要求糖果。
我可能有两个糖果包(第一包有10个糖果,第二包有11个糖果),总共有21个糖果商家提供。现在有另一个聚会(叫做C)想买25块糖果。当然,这是4糖果的更多,所以我们想要尽可能清楚,并计算25糖果- 21糖果和C有剩余的4糖果,我增加到我的桌子上,直到下一个补充。这意味着我在计算(25-10-11)之后删除了包1和包2,并插入了新的值,即4(您记得,25-10-11)。
为此,我想创建一个算法/脚本。这表明,在非常简化的伪码中:
WHILE-loop initiation
IF ($candy_demand_new_offer > $candy_supply_most_recent_row)
{
$candy_demand_new_offer = $candy_demand_new_offer - $candy_supply_most_recent_row;
DELETE $candy_supply_most_recent_row;
INSERT $candy_demand_new_offer;
}在此之后,如果需求低于供给的话,还会采取其他一些措施。但我得到的是两个新条目。这个条目是15和4,因为脚本首先计算(25-10= 15)和(15-11= 4)。当然我的插入是问题所在,但我不能把它保留为空白。因为当没有其他最近的供应时,我必须把剩下的糖果需求插入到桌子上。但不是展示每一步,而是最终的结果。
现在我该怎么做?也许我疯了,或者问题比我想象的更复杂。
谢谢你的帮助,希望你能理解我的问题描述。如果没有,请告诉我,我要学会变得更好。
发布于 2014-04-16 21:54:54
Psuedo代码答案:
while ($candies_needed > 0 && $row = fetch) {
if ($candies_needed >= $row['candies_available']) {
$candies_needed -= $row['candies_available'];
DELETE this row from inventory table;
} else {
UPDATE this row in inventory table SET candies_available = candies_available - $candies_needed;
$candies_needed = 0;
}
}
if ($candies_needed > 0) { // Haven't fullfilled the entire order
INSERT $candies_needed into order table;
}https://stackoverflow.com/questions/23120700
复制相似问题