前段时间重新看到一道老题:1000 杯水里有一杯有毒,最少用几只老鼠能试出来。答案是 10 只——把水编号成二进制,每只老鼠对应一个二进制位,喝下那一位是 1 的所有水,最后看哪几只死了,死亡组合拼起来就是毒水编号。2¹⁰ = 1024,刚好够。 我盯着这道题看了半天,突然想起小时候玩过的一个魔术:一沓卡片,每张上面印一堆数字,你心里想一个数,我逐张问你「你的数在不在这张卡上」,你只答在或不在,最后我就能说出你想的数。 那一刻我反应过来——这俩根本是同一件事。老鼠的死/不死,和卡片的在/不在,都是一个比特;十只老鼠和六张卡片,都是在用二分法,把一大堆可能性一层层对半切开,最后锁定唯一那个。再往后想,称假币、二十个问题猜东西、二分查找……全是这一个东西换了层皮。 我女儿才一岁多,但我自己的童年经历加上见过太多孩子被「算得快不算得对」训练成解题机器,换个数字就不会、遇到没见过的题就慌。我特别不想让她将来也变成那样。我心里真正觉得是数学的本质,不是计算,是看穿结构——是发现老鼠、魔术、猜数字其实是同一道题的那种「啊!」的瞬间。 所以我想,与其将来逼她刷题,不如趁早用一个魔术把...