猜数(一)

发布于 2019-01-27  13 次阅读


题目

一个数字,将各个位求和,删去一个数,并且说出剩余位上各数之和,可以猜出删去的数是什么。

思路

通过列举发现,一个数减去各个位之和后的数必定为⑨的倍数,如果可以证明这一点并且证明这个数在删去一位后仍位⑨的倍数即可。

证明

对于任何一个十进制数(以4位数为例),都可以写成

a_{1}*1000+a_{2}*100+a_{3}*10+a_{4}

有取模(mod)运算符,取模运算:a % p(或a mod p),表示a除以p的余数。

mod有以下性质

  1. (a + b) % p = (a % p + b % p) % p
  2. (a - b) % p = (a % p - b % p) % p
  3. (a * b) % p = (a % p * b % p) % p

设\(x=a_{1}*1000+a_{2}*100+a_{3}*10+a_{4}\)

x减去各个位数之和即\(a_{1}*1000+a_{2}*100+a_{3}*10+a_{4} - a_{1} - a_{2} - a_{3} -a_{4}\)

等于\(a_{1}*999+a_{2}*99+a_{3}*9 = y\)

\(y\bmod 9 = a_{1}*999 \bmod 9 +a_{2}*99 \bmod 9 +a_{3}*9 \bmod 9 = 0 \)

所以一个数减去各个位之和后的数必定为⑨的倍数

 

对于任意的一个⑨都倍数y都有

a_{1}*1000+a_{2}*100+a_{3}*10+a_{4} \bmod 9 = 0

可以写成

a_{1} \bmod 9 *1000 \bmod 9+a_{2} \bmod 9 *100 \bmod 9+a_{3}\bmod 9*10 \bmod 9+a_{4} \bmod 9 = 0

a_{1} \bmod 9 *1+a_{2} \bmod 9 *1+a_{3} \bmod 9 *1+a_{4} \bmod 9 = 0

所以 a_{1}+a_{2}+a_{3}+a_{4} \bmod 9 = 0

也就是说⑨的倍数个各个位之和也是⑨的倍数,所以当说出删掉一个数后的各个位数之和时,可以通过判断该数和那个⑨的倍数最接近而猜出删去了哪个数

 


「墨泼三千烟火,许你一世迷离」