GoCalf Calf 的自留地 · 昙花一现

让 11、12、13、14 通过加减乘除运算得到 46

前两天同事的朋友给出了一个怪怪的题目,说是考验我们的智商,结果最后让我们大跌眼镜。

题目很简单:怎样让四个不同的数 11、12、13 和 14,通过简单的数学运算得到 46,可以使用加减乘除和括号。同时还给了一条重要提示: 不能按照正常的思路思考 。

虽然说不能按照正常思路思考,但看到这个题目后还是立刻祭出了 n 年前写的算 24 点的程序,这个程序(以后有时间可以好好介绍一下)的扩展版支持由任意 2 到 7 个数字通过四则运算求出任意目标数。把四个数字和目标数输入进去,果然无解。不过很快发现,如果数字可以重复,能够得到下面两个最简单的解:

  • 使用两次 11:11+13+11×(14−12)=4611+13+11\times(14-12)=46
  • 使用两次 12:(11+12)×(12+14)/13=46(11+12)\times(12+14)/13=46

可惜出题人并不允许使用重复的数字,要求给定的每个数字必须用且仅用一次。

后来我就想会不会用到其他进制,搞 IT 的,总得玩玩什么二进制、八进制、十六进制之类的。但是应该采用哪个进制呢?想了好久,总算让我找到一个解:

  • 14+12×(13−11)=46oct14+12\times(13-11)=46_{oct}

也就是把 46 按照八进制数来考虑。结果出题人告知:“ 是十进制的 46 ”。看来进制转换的路走不通了,于是我又想出了其他一堆更不靠谱的解:

  • (11+12)≪(14−13)=46(11+12)\ll(14-13)=46
  • (11+12)×⌈1413⌉=46(11+12)\times\left\lceil\frac{14}{13}\right\rceil=46
  • ∑i=1314(11+12)=46\sum_{i=13}^{14}{(11+12)}=46
  • (11+12)×∣{13,14}∣=46(11+12)\times\left|\left\{13,14\right\}\right|=46(这里大括号代表集合)
  • (11+12)×(e14iπ−e13iπ)=46(11+12)\times\left(e^{14i\pi}-e^{13i\pi}\right)=46

很明显越来越扯了,每个解法都引入了四则运算之外的运算符或者函数,都不是正确的解。

在苦思不得其解之后,出题人给出了他的答案,我们都震惊了。不过说实在的,我上面给的八进制的解跟答案非常接近了,只怪我没有深入理解出题人的告知。

正确答案是:

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

  • 11bin+12oct+13dec+14hex=46dec11_{bin}+12_{oct}+13_{dec}+14_{hex}=46_{dec}

原来,出题人说“是十进制的 46”,其内在含义是说:其他数字不一定是十进制。哈哈!