首页 > 解决方案 > 生成具有最大值的组合

问题描述

背景:试图找出我们菜单的哪些价格上涨最有意义。我们的客人每晚平均饮用12欧元。我们的酒吧提供的每种饮品都有一套价格菜单。

饮料 价格
啤酒 1,50
混合 3,50
苏打 0,50
葡萄酒 2,00
镜头 3,00

现在,我想为人们平均花费 12 欧元的菜单生成所有可能的组合。这在 Google 表格中是否可行,我将如何处理?

当我生成组合时,我想看看价格上涨对一个人一晚的总支出有什么影响,以及它会对我们的收入产生什么影响。

我们是一家由志愿者经营的酒吧,所有花在我们这里的钱都用来买第二天晚上的钱,剩下的钱都捐给我们的基金,在那里我们支持需要我们经济帮助的项目。

标签: google-sheetsgoogle-sheets-formula

解决方案


我认为你可以使用混合基数来做到这一点,如下所示:

=ArrayFormula(filter(mod(quotient(sequence(A4,1,0),B4:F4),A3:E3),
mmult(mod(quotient(sequence(A4,1,0),B4:F4),A3:E3),transpose(A2:E2))<=G2))

在此处输入图像描述

左边的前几行包含饮料、它们的价格、可以以 12 美元购买的每种饮料的最大数量(加上一个精确金额),以及上一行从右到左的累积产品.

在 F3 和 F4 中为 1 时,A3 中的公式为

=quotient($G$2,A2)+(mod($G$2,A2)=0)

A4中的公式是

=product(A3:$F3)

拉过去。


也可以设置下限:

=ArrayFormula(filter(mod(rounddown(sequence(A4,1,0)/B4:F4),A3:E3),
(mmult(mod(rounddown(sequence(A4,1,0)/B4:F4),A3:E3),transpose(A2:E2))<=G2)*
(mmult(mod(rounddown(sequence(A4,1,0)/B4:F4),A3:E3),transpose(A2:E2))>G4)))

其中 G4 包含最小值。


推荐阅读