糖果测智

一道必须穷举最坏情况的推理题。它测的不是模型会不会算,而是它会不会把「所有失败情况」数干净——而这正是很多模型习惯性漏掉的一步。

本地计算

当前题目

社区原题
—
最少要摸的颗数

—

题面

可直接复制去问模型
加载中…

四种失败摆法

答案取这些的上限再加一

    推导

    为什么是这个数

      怎么分辨它在想还是在背

      五个办法
        口味3 种口味
        形状2 种形状
        答案—

        常见问题

        这道糖果题的标准答案到底是多少?

        按题面条件,答案是 29。社区里流传的 21 只覆盖了其中一种失败摆法,而且连那种摆法也算少了。把所有失败摆法逐一数完,最狠的一种能摸出 28 颗仍然凑不齐要求,所以第 29 颗才保证成功。本页把四种摆法逐条列出来,答案由算法现算,不是写死的。

        为什么一定要把所有失败摆法都数一遍?

        因为题目问的是「保证」,也就是最坏情况。只要还存在一种摸法能凑不齐,答案就不成立。想到几种算几种会漏掉其余几种,而漏掉之后算出的数偏小——偏小的数看起来还挺合理,最难自己发现。

        同一道题换几个数字,答案就变了吗?

        会变,而且变化不小。这道题最大的弱点就是题目公开,模型可能记住了答案。所以本页提供了同构新题生成器:换口味名、换形状名、换数量,解题逻辑完全一样,答案现算。数字一变,答对就更能说明它是在推理而不是在背题。

        什么样的回答说明模型是在背答案而不是在推理?

        几种表现:数字换了还答原来那个数;形状从圆形换成心形就答不出来;追问它为什么不是某个更小的数时支吾,或者引用「这是经典题的公认答案」;多给一种口味后答案完全不变。多一种口味一定能让失败上限变大,答案不变就是没重算。

        这个页面会联网或上传我复制的东西吗?

        不会。题面生成、答案计算和解析全部在浏览器里完成,页面不发任何网络请求,也不会生成任何文件。你选中的口味数、形状数和种子只留在浏览器本地,同一个种子下次打开还是同一道题,方便分享给别人对答案。

        一道题,和它测不出的东西

        这道题看上去是小学奥赛水平:一袋糖,三种口味,每种两种形状,问最少摸几颗能保证凑齐「不同形状的两种口味」。它的全部难点不在计算,而在是否把情况数干净。模型很容易给出一个看起来挺合理的数——它找到了某种摸不到的情况,算出一个上限,然后就把那个数当答案了。问题在于,失败的方式不止一种。

        答案是 29,不是 21

        把所有失败摆法数完,最狠的一种能摸出 28 颗仍然失败,所以第 29 颗才保证成功。

        失败方式恰好收敛到四种

        缺一种目标口味、缺另一种、两种口味都只拿到同一种形状(形状有几种就算几种)。想清楚这点,题目就没有想象中难。

        其余口味永远能全拿走

        第三种口味对目标没有贡献,是凑满失败上限的免费筹码。漏掉它算出的数会偏小。

        换一组题最有效

        口味、形状、数字全换,解题逻辑一样,答案现算。数字一变,背题立刻露馅。

        让模型先讲思路

        只要数字没法判断是算的还是蒙的。思路里出现「只想到一种情况」才是真信号。

        两道题一起跑

        鹈鹕骑车测结构生成,这道题测穷举彻底性。互补着看,比只看一道准得多。

        三个容易踩的地方

        1. 把「找到一种反例」当成「证明了答案」。这是最常见的错误,也是 21 的来历。给出一种凑不齐的摸法,只能说明答案至少要大于那个数,不能说明就等于它。题目问的是保证,要把上界和下界对上。
        2. 忘了第三种口味可以全部拿走。它对目标没贡献,所以最倒霉的那一手一定会把它捞光——这是免费的上限增量,漏掉就偏小。
        3. 被题目的公开程度骗了。这道题在网上流传极广,答过一次的模型很可能记住了答案 21。所以拿它测「绝对水平」意义有限,正确的用法是换一组数字再问一遍,看它跟着变不变。