算式谜题

来自计算思维百科
跳转至: 导航搜索
算式谜题1.png

算式谜题指的是,算式(比如加法算式)中的所有数字都被字母所代替。如果该算式中的单词是有意义的,那么这种算式被称为字母算术。

基本概念

最著名的字母算术是由大名鼎鼎的英国迷人H.E.Dudeney(1857-1930)给出的:算式谜题2.png

这里有两个前提假设:第一,字母和十进制数字之间是一一对应关系,也就是说,每个字母只能代表一个数字,而且不同的字母代表不同的数字;第二,数字0不能出现在任何数的最左边。求解一个字母算术意味着找到每个字母代表的是哪个数字。注意,解可能不是唯一的,不同人的解可能并不相同。

解决方案

方案一:穷举法

上式中有字母D、E、M、N、O、R、S、Y,这些字母所代表的数字各不相同。那么,8个字母与数字对应的所有可能情况有P(10,8)=10!/2!种,将所有的排列组合代入到

算式谜题2.png

1000×(S+M)+100×(E+O)+10×(N+R)+(D+E)=10000×M+1000×O+100×N+10×E+Y中进行验算,看左右两边是否相等,当然,要排除S=0和M=0的情况。穷举法可以找出所有解,但是效率低下。

运用的计算思维

穷举列出所有的排列组合再代入进行验证得到解,这种解决方法运用的是机械化的计算思维。

方案二:经验法

算式谜题2.png

观察上式,我们可以知道,M=1。因为S、M都是小于等于9的数,即使百位有进位,S+M+1也小于20。那么现在有两种情况,

如果百位没有进位,则S+M=10+O,

如果百位有进位,则S+M+1=10+O。

这里我们只考虑第一种情况,即S+M=10+O。

因为M=1,S≤9,O≥0,S+1=10+O,S-O=9,所以,S=9,O=0。那么上式就变成

算式谜题3.png

因为E≠N,所以十位一定有进位,也即E和N满足,E+1=N,以及类似的,两种情况,

情况一:如果个位没有进位,则N+R=10+E;

情况二:如果个位有进位,则N+R+1=10+E。

分析情况一,E+1+R=10+E,得出R=9,而S=9,所以排除;

分析情况二,E+1+R+1=10+E,得出R=8

此时,还剩下数字2、3、4、5、6、7没有分配。

根据上述分析,个位有进位,也就是D+E=10+Y。因为Y≥2,所以10+Y≥12,又因为目前最大的数字是6和7,而E<N,所以,D+E≤12,所以D+E=10+Y=12。因此,Y=2,那么E和D就只能在5和7之间选择,如果E=7,那么N=E+1=8,与R重复,排除,所以E=5D=7N=6

运用的计算思维

上述经验推理的过程能够帮我们排除大部分情况甚至可以直接找出答案,运用了计算思维的启发式特点。