孙子巧解“鸡兔同笼”
大约在一千五百年前,大数学家孙子在《孙子算经》中记载了这样的一道题:“今有雏兔同笼,上有三十五头,下有九十四足,问雏兔各几何?”这四句的意思就是:有若干只鸡和兔在同一个笼子里,从上面数,有三十五个头;从下面数,有九十四只脚。求笼中各有几只鸡和兔?同学们,你会解答这个问题吗?你知道孙子是如何解答这个“鸡兔同笼”问题的?
原来孙子提出了大胆的设想。他假设砍去每只鸡、每只兔一半的脚,则每只鸡就变成了“独脚鸡”,而每只兔就变成了“双脚兔”。这样,“独脚鸡”和“双脚兔”的脚就由94只变成了47只;而每只“鸡”的头数与脚数之比变为1:1,每只“兔”的头数与脚数之比变为1:2。由此可知,有一只“双脚兔”,脚的数量就会比头的数量多1。所以,“独脚鸡”和“双脚兔”的脚的数量与他们的头的数量之差,就是兔子的只数,即:47-35=12(只);鸡的数量就是:35-12=23(只)。
当然,这道题还可以用方程来解答。我们可以先设兔的只数(也就是头数)是x,因为“鸡头+兔头=35”,所以“鸡头=35-x”。由此可知,有x只兔,应该有4x只兔脚,而鸡的只数是(35-x),所以应该有2×(35-x)只鸡脚。现在已知鸡兔的脚总共是94只,因此,我们可以列出下面的关系式:
4x+2×(35-x)=94
x=12
于是可以算出鸡的只数是35-12=23。
还有一道这样的题:“100个和尚吃100个馒头。大和尚一人吃3个,小和尚3人吃一个。求大、小和尚各多少个?”它的答案是大和尚有25个,小和尚有75个。算法一样的
话孙膑,庞涓都是鬼谷子的徒弟.
一天鬼出了这道题目:他从2到99中选出两个不同的整数,把积告诉孙,把和告诉庞;
庞说:我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么。
孙说:我本来的确不知道,但是听你这么一说,我现在能够确定这两个数字了。
庞说:既然你这么说,我现在也知道这两个数字是什么了。
解答一:孙庞猜数的手算推理解法:
1)按照庞的第一句话的后半部分,我们肯定庞知道的和S肯定不会大于54。
因为如果和54<S<54+99,那么S可以写为S=53+a,a<=99。如果鬼谷子选的两个数字恰好是53和a,那么孙知道的积M就是M=53× a,于是孙知道,这原来两个数中至少有一个含有53这个因子,因为53是个素数。可是小于100,又有53这个因子的,只能是 53本身,所以孙就可以只凭这个积53×a推断出这两个数术53和a。所以如果庞知道的 S大于54的话,他就不敢排除两个数是53和a这种可能,也就不敢贸然说“但是我肯定你也不知道这两个数是什么”这种话。
如果53+99<S<=97+99,那么S可以写为S=97+a,同以上推理,也不可能。
如果S=98+99,那么庞可以立刻判断出,这两个数只能是98和99,而且M只能是98×99,
孙也可以知道这两个术,所以显然不可能。
2)按照庞的第一句话的后半部分,我们还可以肯定庞知道的和S不可以表示为两个素数的和。
否则的话,如果鬼谷子选的两个数字恰好就是这两个素数,那么孙知道积M后,就可以得到唯一的素因子分解,判断出结果。于是庞还是不敢说“但是我肯定你也不知道这两个数是什么”这种话。
根据哥德巴赫猜想,任何大于4的偶数都可以表示为两个素数之和,对54以下的偶数,猜想肯定被验证过,所以S一定不能是偶数。
另外型为S=2+p的奇数,其中p是奇素数的那些S也同样要排除掉。
还有S=51也要排除掉,因为51=17+2×17。如果鬼谷子选的是(17,2×17),那么孙知道的将是M=2×17×17,他对鬼谷子原来的两数的猜想只能是(17,2×17)。(为什么51要单独拿出来,要看下面的推理)
3)于是我们得到S必须在以下数中:
11 17 23 27 29 35 37 41 47 53
另外一方面,只要庞的S在上面这些数中,他就可以说“但是我肯定你也不知道这两个数是什么”,因为这些数无论怎么拆成两数和,都至少有一个数是合数(必是一偶一奇,如果偶的那个大于2,它就是合数,如果偶的那个等于2,我们上面的步骤已经保证奇的那个是合数),也就是S只能拆成a) S=2+a×b 或 b) S=a+2^n×b这两个样子,其中a和b都是奇数,n>=1。那么(下面我说的“至少两组数”中的两组数都不相同,而且的确存在(也就是那些数都小于100)的理由我就不写了,根据条件很显然)
a)或者孙的M=2×a×b,孙就会在(2×a,b)和(2,a×b)至少两组数里拿不定主意(a和b都是奇数,所以这两组数一定不同);
b)或者M=2^n×a×b,
如果n>1,那么孙就会在(2^(n-1)×a,2×b)和(2^n×a,b)至少两组数里拿不定主意;
如果n=1,而且a不等于b,那么孙就会在(2×a,b)和(2b,a)至少两组数里拿不定主 意;
如果n=1,而且a等于b,这意味着S=a+2×a=3a,所以S一定是3的倍数,我们只要
讨论S=27就可以了。27如果被拆成了S=9+18,那么孙拿到的M=9×18,他就会在
(9,18)和(27,6)至少两组数里拿不定主意。
(上面对51的讨论就是从这最后一种情况的讨论发现的,我不知道上面的论证是否
过分烦琐了,但是看看51这个“特例”,我怀疑严格的论证可能就得这么烦) 现在我们知道,当且仅当庞得到的和数S在 C={11, 17, 23, 27, 29, 35, 37, 41, 47, 53} 中,他才会说出“我虽然不能确定这两个数是什么,但是我肯定你也不知道这两个数是什么”这句话 孙膑可以和我们得到同样的结论,他还比我们多知道那个M。
4)孙的话“我现在能够确定这两个数字了”表明,他把M分解成素因子后,然后组合成关于鬼谷子的那两个数的若干个猜想中,有且仅有一个猜想的和在C中。否则的话,他还是会在多个猜想之间拿不定主意。
庞涓听了孙的话也可以得到和我们一样的结论,他还比我们多知道那个S。
5)庞的话“我现在也知道这两个数字是什么了”表明,他把S拆成两数和后,也得到了关于鬼谷子的那两个数的若干个猜想,但是在所有这些拆法中,只有一种满足4)里的条件,否则他不会知道究竟是哪种情况,使得孙膑推断出那两个数来。
于是我们可以排除掉C中那些可以用两种方法表示为S=2^n+p的S,其中n>1,p为素数。因为如果S=2^n1+p1=2^n2+p2,无论是 (2^n1,p1)还是(2^n2,p2)这两种情况,孙膑都可以由M=2^n1×p1或M=2^n2×p2来断定出正确的结果,因为由M得到的各种两数组合,只有 (2^n,p)这样的组合,两数和才是奇数,从而在C中,于是孙膑就可以宣布自己知道了是怎么回事,可庞涓却还得为(2^n1,p1)还是(2^n2, p2)这 两种情况犯愁。
因为11=4+7=8+3,23=4+19=16+7,27=4+23=16+11,35=4+31=16+19,37=8+29=32+5,47=4+43=16+31。于是S的可能值只能在17 29 41 53中。让我们继续缩小这个表。
29不可能,因为29=2+27=4+25。无论是(2,27)和(4,25),孙膑都可以正确判断出来:
a)如果是(2,27),M=2×27=2×3×3×3,那么孙可以猜的组合是(2,27)(3,18)(6,9),
后面两种对应的S为21和15,都不在C中,故不可能,于是只能是(2,27)。
b)如果是(4,25),M=4×25=2×2×5×5,那么孙可以猜的组合是(2,50)(4,25)(5,20) (10,10)。只有(4,25)的S才在C中。
可是庞涓却要为孙膑的M到底是2×27还是4×25苦恼。
41不可能,因为41=4+37=10+31。后面推理略。
53不可能,因为53=6+47=16+37。后面推理略。
研究一下17。这下我们得考虑所有17的两数和拆法:
(2,15):那么M=2×15=2×3×5=6×5,而6+5=11也在C中,所以一定不是这个M,否则4)的条件不能满足,孙“我现在能够确定这两个数字了”的话说不出来。
(3,14):那么M=3×14=2×3×7=2×21,而2+21=23也在C中。后面推理略。
(4,13):那么M=4×13=2×2×13。那么孙可以猜的组合是(2,26)(4,13),只有(4,13)的和在C中,所以这种情况孙膑可以说4)中的话。
(5,12):那么M=5×12=2×2×3×5=3×20,而3+20=23也在C中。后面推理略。
(6,11):那么M=6×11=2×3×11=2×33,而2+33=35也在C中。后面推理略。
(7,10):那么M=7×10=2×5×7=2×35,而2+35=37也在C中。后面推理略。
(8,9):那么M=8×9=2×2×2×3×3=3×24,而3+24=27也在C中。后面推理略。
于是在S=17时,只有(4,13)这种情况,孙膑才可以猜出那两数是什么,既然如此,庞涓就知道这两个数是什么,说出“我现在也知道这两个数字是什么了”。听了庞涓的话,于是我们也知道,这两数该是(4,13)。
什么东西啊