卡牌 · 数字益智

24 点怎么算:从穷举到巧算的三个套路

四张牌、四个数字、一次机会。规则只有几行,但想在几秒内看出答案,需要一点方法。

「24 点」是一副牌就能玩的速算游戏:每次翻开四张牌,用加、减、乘、除和括号,把四个数字各用一次,算出 24。它看起来靠灵光一现,其实有稳定的路数。下面先讲规则,再用四个由易到难的例子拆解,然后给出三个最常用的套路,最后说明计算机怎样穷举,以及本游戏为什么不会发出无解的牌。

一、规则:四张牌,各用一次

举个例子:牌面 3、3、8、8 里有两个 3,但它们是两张不同的牌,算式中必须各出现一次;不能写成 33,也不能只用一个 3。

二、四个例子,由易到难

例 1:2、3、4、6

先看能不能凑出 1:3−2=1。另一边 6×4 正好是 24,再乘 1 不改变结果。

6×4×(3−2)=24

验证:3−2=1;6×4=24;24×1=24。

例 2:4、4、10、10

两个 10 相乘得到 100,减去一个 4 得 96,再除以另一个 4。

(10×10−4)÷4=24

验证:10×10=100;100−4=96;96÷4=24。

例 3:1、5、5、5

直接想 5×?=24 不行,因为 24÷5=4.8。把 1 变成 1/5,括号里就得到 4.8。

5×(5−1÷5)=24

验证:1÷5=1/5;5−1/5=24/5;5×24/5=24。

例 4:3、3、8、8

这组没有 1、2、4、6,硬乘凑不出来,需要主动造一个分数:8÷3=8/3,3−8/3=1/3,而 8÷1/3=24。

8÷(3−8÷3)=24

验证:8÷3=8/3;3−8/3=1/3;8÷1/3=24。

这个例子说明:分数不是障碍,而是 24 点最有力的工具之一。

三、三个套路

套路一:凑 3×8 或 4×6

24 的整数因数对只有 1×24、2×12、3×8、4×6。牌面里出现 3 就找 8,出现 4 就找 6,出现 2 就找 12。例 1 的骨架就是 6×4,另外两张牌只需要凑出 1。看到四张牌先问:能不能把其中两张留作因数,另外两张做成 1?

套路二:利用 1 和分数

如果凑不出整数因数,就制造 1 或倒数。例 3 用 1÷5 把 1 变成 0.2,让括号里得到 4.8;而 4.8 正好是 24÷5。另一个典型是 1、3、4、6:1−3÷4=1/4,6÷1/4=24,写成完整算式就是 6÷(1−3÷4)=24。看到 6 和 4,不要只想 6×4,也可以想 6÷(1/4)。

套路三:先凑 12 再乘 2

24 也等于 12×2。把四张牌分成两组,一组凑 12,一组凑 2。例:1、3、5、7,7+5=12,3−1=2,于是 (7+5)×(3−1)=24。再如 4、7、8、9,8+4=12,9−7=2,得到 (8+4)×(9−7)=24。分组比从左往右硬算更容易看出结构。

四、穷举:计算机怎样保证有解

程序的做法很朴素:每次从当前数字里挑两个,试加、减、乘、除四种运算(减法和除法要试两个方向),把结果放回去,数字就少一个;重复到只剩一个数,看它是不是 24。四个数只有有限的挑法和运算顺序,全部试完就能确定有没有解。

关键是全程用分数:8÷3 如果记成 0.3333,最后会差一点点;用分子和分母精确计算,才不会把有解误判成无解。

四个数能形成的组合其实很少,一次完整搜索通常不到一毫秒。难的不是算得快,而是判断得准:只要中途用过小数,就可能把「其实有解」算成「差一点」。本游戏发牌时先跑一遍这个穷举,只发有解的组合;提示功能也从同一条搜索路径里取第一步,所以提示之后剩下的牌一定还算得出来。

五、常见问题

可以重复使用某一张牌吗?

不可以。四张牌必须各用一次;即使两个点数相同,也要当作两张牌分别用掉。

中间结果可以是负数或分数吗?

可以。规则只约束最后结果等于 24,中间过程允许出现负数和分数。

能把 3 和 3 写成 33 吗?

不能。只能使用四则运算和括号,不能拼接数字,也不能开方、阶乘或乘方。

发到的牌一定算得出来吗?

是。每次发牌前程序都会验证有解;如果暂时想不到,可以点「提示」看一步,或点「换一题」。

一定要按从左到右的顺序算吗?

不需要。乘除先于加减,括号可以改变顺序;你可以在任意位置加括号,只要最后一步等于 24 就行。

为什么提示只给一步?

一步提示是从一条完整解法里取出的第一个运算,执行后剩下的数字仍然有解。它给你方向,但不会直接把答案说完。

先认骨架,再试分数,最后才逐项穷举。顺序对了,24 点就从碰运气变成一门可以练的手艺。

回到 24 点游戏,试一手 →

玩 24 点 · 返回游戏大厅 · 更多工具