McPair
麦麦配 / MEAL PAIRING
不推荐套餐,只做最优配对。下面每一组数字都来自 scripts/pair.py 的真实运算,
数据取自麦当劳 MCP 门店接口截面 —— 不是示意图,也没有一个是语言模型编的。
枚举规模 1,881 – 3,203 种
零第三方依赖 0
单元测试 56 通过
MCP mcd.cn
枚举 1,881 种组合 → 硬约束剪枝后剩 1,326 组可行 → 非支配排序 → 三档选优
省钱档
¥14.9
582 kcal · 蛋白 17 g
人气经典随心配
价格优先,同时保住主餐不降级
均衡档
¥34.5
827 kcal · 蛋白 27 g
板烧鸡腿堡三件套
原价 ¥48,让利 ¥13.5 · 价格 / 热量 / 蛋白的平衡点
放纵档
¥39.5
920 kcal · 蛋白 29 g
板烧鸡腿堡三件套
+ 圆筒冰淇淋
口味与蛋白优先,接受更高热量
反事实
预算从 ¥40 加到 ¥48,均衡档的主餐不会变——再往上加钱,只会让你多一份小食或甜品,换不到更好的主餐。
淘汰理由
精选超值随心配¥13.9 · 461 kcal—对比省钱档
各项指标被同价位方案全面压制
麦麦脆汁鸡 1 块¥24.9 · 495 kcal−27%口味契合
对比均衡档,口味契合低 27%
蘸酱麦麦脆汁鸡¥29.4 · 621 kcal−37%口味契合
对比均衡档,口味契合低 37%
券诊断 · 6 张券
当前时刻(18:57)你的 6 张券一张都用不了。最近可用:巧克力味厚松饼猪柳蛋套餐,10-18 05:00,约 10.1 小时后。
2 张券指向你几乎不点的品类 —— 券不是没用,是没发对人。
3 张券对应商品本店当前未售。
枚举 3,203 种组合 → 通过 881 组 → 因营养表缺失剔除 1,093 组、超热量剔除 981 组、无饮品剔除 248 组
省钱档
¥21.8
380 kcal · 蛋白 16 g
蘸酱脆皮鸡块
+ 燕麦奶铁
原价 ¥42,让利 ¥20.2
均衡档
¥21.8
495 kcal · 蛋白 25 g
蘸酱麦麦脆汁鸡
+ 燕麦奶铁
原价 ¥41,让利 ¥19.2 · 三者平衡点
放纵档
¥24.9
556 kcal · 蛋白 22 g
蘸酱麦麦脆汁鸡
+ 阳光橙麦炫酷
原价 ¥31,让利 ¥6.1
它敢承认约束把选择压死了
三档只差 ¥3.1——不是没算开,而是你的约束把可行空间压窄了:再往上加钱,也换不到明显更好的组合。
不加这句,用户会以为算法偷懒。加了这句,用户知道是自己设的条件紧。
反事实
预算从 ¥45 加到 ¥53,均衡档的主餐不会变——加钱只换来一份小食或甜品。
小明控卡 600 且不吃辣 · 小美无限制 · 老王想吃辣 | 枚举 2,313 种分配 → 1,179 组可行 → max-min 选优
最公平的一单
¥99.5 / 原价 ¥113,让利 ¥13.5
5 件商品 · 最低满意度 0.77
麦麦脆汁鸡 1 块 + 怡泉+C · 438 kcal | 最想要的「板烧鸡腿堡」没点上
培根蔬萃双层牛堡 + 薯条 · 731 kcal | 最想要的「巨无霸」没点上
麦辣鸡腿汉堡三件套 · 921 kcal
为什么不用「总分最高」那一单
只照顾老王:他能到 0.91,但小美会掉到 0.76,max-min 只剩 0.76 → 否决。
这是罗尔斯意义上的差异原则:不追求总满意度最大,只保证最不满意的那个人不被牺牲。
21 个多人场景的实测:19/21 里公平解与效率解是同一单——公平通常不花钱。只在预算紧到必须有人让步时,才会分离。
把让步摆到台面上
三个人各自最想要的主餐都没点上,这不是失败,是预算 100 下的必然。
拼单最容易吵架的那句话,在点单前就说出来了。