数学戏法:猜生日
作者:(苏联)别莱利曼
【题】如果不定方程解得熟练,就可以表演下面这个数学戏法。
你请一位同志把他出生日子乘以12,把出生的月份乘以31,然后加起来把总数告诉你。于是你来推算他的生日。
例如,倘若这位同志的生日是2月9日,那他先做下面这样的计算:
9x12=108, 2x31=62,
108+62=170。
他把最后这个数170告诉你,于是你想法决定他的生日。用什么办法呢?
【解】这个题目就是要解不定方程
12x+31y=170,
这里 x 和 y 当然都只能是正整数,并且日子 x 不会大于31而月份 y 不会大于12。
我们来解:

图片
知道了31≥ x >0和12≥ y >0,我们求出t₁的数值界限是:

图片
所以,t₁=0, x =9, y =2
他的生日是2月9日。
我们来证明,变这个戏法总可以得到成功,就是说,这个方程总是只有一个正整数解。那位同志告诉你的那个数,用 a 表示,那么求他的生日就是解方程
12x+31y= a
我们用"反证法"来证明,假定这个方程有两个正整数解,它们是x₁,y₁和x₂,y₂,而 x₁和x₂不大于31, y₁和y₂不大于12。于是我们有:
12x₁+31y₁= a ,
12x₂+31y₂= a 。
从第一式减去第二式,得到:
12( x₁-x₂)+31( y₁-y₂)=0。
从这个等式可知,12(x₁-x₂)能被31整除。因为 x₁和 x₂是不大于31的正数,所以它们的差 x₁-x2应当小于31。因此只有在 x₁=x₂的时候12( x₁-x₂)才能被31整除,也就是第一个解和第二个解重合。所以假定这个方程有两个不同的解会导致矛盾。

另外一个版本
猜生日
这类算术戏法可以进行各种各样的改编。接下来我要介绍一个相当复杂的、但也因此令人印象深刻的例子。
习题
假设你生于1903年5月18日,现年23岁,但我既不知道你的生日,也不知道你的年龄。不过,我只需请你做几个计算,就能把生日和年龄都猜出来。
首先请你把出生月份对应的数字5乘以100,再加上出生日期(18),接下来对得数依次进行下列运算:乘以2,加上8,乘以5,加上4,乘以
10,加上4;然后把得数加上你的年龄(23)。
完成上述运算之后,你把最终结果告诉我。我把这个数减去444,然后从右数起,每两个数字分为一组,立刻就得到了你的出生日期、出生月份和年龄。
千真万确!我们可以按顺序做一下上述运算:
5x100=500
500+18=518
518x2=1036
1036+8=1044
1044x5=5220
5220+4=5224
5224x10=52240
52240+4=52244
52244+23=52267
(我的计算)52267-444=51823从右起每两个数字分为一组,可得:
5-18-23
也就是5月、18日、23岁。为什么会这样呢?
解
下面的等式揭示了戏法的奥秘:
{[(100m+ t )x2+8]x5+4}x10+4+ n -444=10000m+100t+ n
在这个等式里, m 表示月份, t 表示日期, n 表示年龄。等式左边是上文提到的所有运算,右边是打开括号并整理化简后的得数。须指出,在10000m+100t+ n 这个式子中, m 、 t 、 n 至多只能是两位数;因此,对最终得数按每两个数字分为一组,总能恰好分成三组,分别表示未知数 m 、t、 n。
聪明的读者,你可以自己对这套戏法做一些改动,设计出另一套运算组合,最终也会得出相同的结果。

读后感
https://m.toutiao.com/is/SVLwwau/ - 中国的一次不定方程解法 - *今条头日**
上面的链接介绍了解不定方程的中国古代方法和欧洲代数方法。
有一个问题,某人不懂不定方程的解法,那么他一定不能猜生日吗?
错,猜生日这个游戏难度太低,不懂正规解法也有办法心算出来。
举个例子,某月乘以31的积再加上某日乘以12的积,得到一个数是365,请你计算某月某日的具体日期。这就是解不定方程12x+31y=365
这个题目难吗?并不难。接下来介绍几种解法。先谈谈初学者的猜数法。再介绍欧洲代数方法和中国古代方法。
初学者虽然不懂不定方程的解法,但是题目是死的,而且难度有限,而人是活的,活人不可能被尿憋死,所以有办法猜出答案。
因为365是奇数,所以可以判断y一定是奇数。(奇数乘以奇数还是奇数,偶数无论乘以奇数还是偶数,乘积还是偶数)
从数字来估算,日期是下半年,所以y的取值范围是7、9、11这三个奇数。用11来试探,11×31有速算法,即把31两边拉开,中间放入3+1的和,即11×31=341,再心算365-341=24,恰好是12的倍数
,于是得到答案了,日期是11月2日。
如果用7来试探的话,365-217=148,不能被12整除,所以不可能。
用9来试探的话,365-279=86,也不能被12整除,所以排除。
再用这种猜数法解苏联科普大师别莱利曼的例题12x+31y=170,猜起来也很容易。
同理,代表某月的y一定是偶数,而且估算答案日期是上半年,就先从y=2开始猜。
因为170-2×31=108,众所周知,108=12×9,所以答案是2月9日。
不过猜数法毕竟不正规,下面介绍欧洲代数方法。解题过程请看下图。

图片
算出x=2,自然也就得到y=11。
再介绍中国古代方法。大衍求一术可能会劝退一部分读者,所以我们用更直截了当的求乘率的方法来解不定方程。
我们先不忙着解方程,先解决一个猜数游戏。
1=12( )+31( )
请在括号里面填整数,使等式成立。第一个括号里面的数是x,也是我们要求的乘率。第二个括号里面填的数是y,我们不关心,只需要它是整数就可以了。
怎么解决这个猜数游戏的问题呢?请看下图:

图片
画个草图帮助我们理清思路,以终为始,执本溯源,完成了猜数游戏。
现在知道,第一个括号里面填13,第二个括号里面填-5。13是乘率,是解决问题的关键。
中国古代数学家为什么要求一呢?感觉求一的过程就是一个转化的过程,分数慢慢地转化为整数了。
求出乘率就可以立刻解决战斗。现在我们回到方程:
12x+31y=365
直接有下面的结论:
x=13×365-31q
q取何值比较合适呢?算一下:
13×365÷31=153.064516
所以,q取值为153,得
x=13×365-31×153=4745-4743=2
算出x=2,y就必须等于11了。
有了解题经验,再解例题就更快了。
12x+31y=170,解这个题目我们知道乘率是13,于是有
x=13×170-31q
因为13×170÷31=71.290323,所以取q=71,得
x=13×170-31×71=9
算出来x=9,那么y=2,可以收工啦。
于是,猜生日游戏通关了。通过解剖一道题,我们掌握了一类题的解法。
只要求出乘率,答案就像水晶一样透明,不定方程问题就迎刃而解。

科学尚未普及,媒体还需努力。感谢阅读,再见。