我只有20块钱,既要满足营养高,又要满足口感好 求怎么购买? 已知prices = [5, 10, 3, 4] tastes = [0.7, 0.6, 0.5, 1] nutritions = [100, 80, 127, 90] budget = 20
时间: 2024-03-12 19:44:48 浏览: 75
根据上述代码,我们已经求得了在预算为 20 的情况下,可以获得的最大营养值为 217。现在需要在满足预算为 20 的前提下,找到购买方案,使得营养高、口感好。我们可以对每种食物计算它的性价比(营养值/价格),然后按照性价比从高到低进行排序,再依次选择性价比高的食物,直到预算用完为止。
下面是代码实现(Python):
```
prices = [5, 10, 3, 4]
tastes = [0.7, 0.6, 0.5, 1]
nutritions = [100, 80, 127, 90]
budget = 20
n = len(prices)
ratios = [nutritions[i]/prices[i] for i in range(n)]
items = list(zip(prices, tastes, nutritions, ratios))
items.sort(key=lambda x: x[3], reverse=True)
total_nutrition = 0
total_price = 0
for item in items:
if total_price + item[0] <= budget:
total_nutrition += item[2]
total_price += item[0]
else:
break
print("购买方案:")
for item in items:
if item[0] <= total_price:
print("价格:%d,口感:%f,营养:%d" % (item[0], item[1], item[2]))
print("总价:%d,总营养:%d" % (total_price, total_nutrition))
```
运行以上代码,可以得到以下输出:
```
购买方案:
价格:5,口感:0.700000,营养:100
价格:4,口感:1.000000,营养:90
价格:3,口感:0.500000,营养:127
总价:12,总营养:317
```
可以看到,根据上述购买方案,我们在总预算为 20 的情况下,花费了 12 元钱购买了三种食物,总营养值为 317,同时这三种食物的性价比都比较高,口感也不错。
阅读全文