来源 : 1997 年 01 期
巧猜姓氏年龄
作者: 周宏伟
每逢节假日亲人、朋友团聚,你想学一招巧猜年龄、姓氏的游戏,露上一手吗?首先让我们利用已设计好的表来做一次“演习”。你把这7张图表(见表)给受试者看看,问他哪几张上面有他的年龄(有多少张都得说出来),然后你就把有他年龄的每个图表上的第一个数字相加,得到的和即受试者的年龄。例如,你的一位亲戚.先没有告诉你他是33岁,只是说他的年龄可以从第一张和第六张上面找到,那你就把这两张图表上的第1个数1和32相加,得到的结果不就是33 了吗?又有一位朋友说他的年龄可以从第一、三、五张图表上可以找到,那你把这三张图表上的第一个数字1、4、16相加,和为21,那么你的这位朋友必定是21岁无疑了。
细心的读者会发现,这7张图表上最小的数字是1,最大的数字是127,因而用它们来猜年龄只能猜1~127岁之间(包括1岁、127岁)的年龄。如果要猜更大一点的年龄,就只能重编一系列图表了。猜年龄就是这么简单。
年龄表是怎么来的呢?我们都知道,平常使用的一般是十进制数,而年龄表是根据二进制原理设计出来,那么十进制数怎样才能转化为二进制数呢?请朋友们记住,二进制最基本的规定是逢二进一。一个十进制整数要化为二进制整数只需把这个十进制数一次又一次地除以2,每次得到的余数就是二进制数,但需注意,要从最后一个余数写起。如,1除以2,由于不能整除,可看为商数为0,余数为1,那么十进制数1的二进制数也为1; 2除以2,商数为1,末数为0, 1再除以2,商数为0,余数为1,所以十进制数2的二进制数为10;再如3除以2、4除以2、5除以2……依此类推,可知3、4、5、6、7……、127等十进制数的二进制数分别为:11、100、101、110、111、1000、……、1111111。图示如上,其中括号外的小字体数10、2分别表示括号内的数为10进制数和2进制数。我们把1~127的127个数全部化为二进制数后,现在来一个规定:凡是倒数第一位为1的二进制数,我们把它们的十进制数按顺序列为一个表,这样可得64个数;凡是倒数第二个数为1的二进制数,我们把它们的十进制列为一个表,这样又可得64个数。依此类推,恰好可得到7张含有64个数字的表格,即我们所看到的这7个年龄表格。
表格上127个字是百家姓的前127个姓氏。为了方便起见,我们就把猜姓氏的表格和猜年龄的表格合在一起了。这样做,是由于猜姓氏的图表的由来和上面的差不多,只是稍微有点不同:我们要把数字换成姓氏。其实也简单:先编好一些年龄表一样的表格,然后根据表中的最大数字N,从百家姓中选取前N个姓氏按顺序与1~N的N个整数一一对应好,即让一个数字固定地代表一个姓。最后把表中的数字全部用它们所代表的姓氏代替,姓氏推算表便制成了。当然也可从把姓氏列在年龄表数字旁边,像上面的表一样两表合一。使用时,按猜年龄同样的方法,你问清楚受试者他的姓氏可从哪几个表中找到,再把这几个表中的数字(如果不是两表合一,则为汉字所代表的数字)的第一个数相加,然后找到所得的和代表的姓,那么这个姓就是受试者的姓了。我们不妨用上面的7个表格试一下。你的朋友如果说他的姓可从第一、三、五张表中可找到,我们就把表一、表三、表五中的第一个数1、4、16相加,即得21,我们就根据所记的数字、姓氏对应表(附后)把21所代表—的姓——“何”说出来,那么你的这位朋友必定是姓何了。同猜年龄一样,这里猜姓氏也受到限制,只能猜百家姓的前127个姓,如果要猜更多的姓,就只有根据需要重新编制表格了。
请注意,不管使用年龄表还是使用—姓氏表,做加法运算时,必须用表中的第一个数,而且得记住每个表中的第一个数是什么,猜姓氏时还须记住数字所代表的姓,这样你才能不看表来猜人家的姓和年龄了。另外,必须重新说明一下:所猜年龄和姓氏必须是你所编制的表格中有的,否则,是怎么猜也猜不出的。
现在,只要你把我们的表剪下来,就可以自如的露上一招“巧猜年龄、姓氏”的本领了。