八张卡猜姓玩法详解
揭开“猜姓”游戏的秘密
我曾经看到街上有人摆摊猜他的姓。摊主面前有七八张写着姓氏的纸。只要有人说那些纸上有他的姓,那些纸上没有,摊主就能立刻正确地说出他的姓。
“猜姓”游戏和“猜年龄”游戏一样,运用二进制数和十进制数的转换知识。这两款游戏都是最低级别的密码游戏。
每个人都熟悉电视剧中的报道场景。这里有一个报告员,另一边有一个报告员。报告员将要发送的信息编制成密码(密码)并发送出往。收到电报密码(密码)后,报告员将密码翻译成明文,了解报告员发送的信息。
“猜姓”游戏就是这样。摊主相当于收银员(处于主动地位)。他面前的几张纸是密码本,其他参与者是发银员(处于被动地位)。密码是摊主编辑的,其他参与者不知道。
这样生成密码和密码:
以6张写姓氏的纸和一张姓氏对比表为例。
六张纸是用六位二进制数作为系列密码。每张纸表达一个二进制数。
因为最大的6位二进制数[11111]2=63,所以你可以猜到63个姓氏。假如是7张纸,就是以7位二进制数为系列密码,可以猜到[11111]2=127个姓氏。等等。
先按顺序(也可以打乱顺序)取63个姓氏(也可以依据当地姓氏的特征抉择),然后用十进制数编制序号(未加密密码),得到姓氏对比表。如下:
姓氏对比表
1赵 2钱 3孙 4李 5周 6吴 7郑 8王 9冯 10陈 11褚 12卫 13蒋 14沈
15韩16杨 17朱 18秦 19尤 20许 21何 22吕 23施 24张 25孔 26曹 27严
28华 29金 30魏 31陶 32姜 33戚 34谢 35邹 36喻 37柏 38水 39窦 40章
41云 42苏 43潘 44葛 45奚 46范 47彭 48郎 49鲁 50韦 51昌 52马 53苗
54凤 55花 56方 57俞 58任 59袁 60柳 61酆 62鲍 63史
将姓氏前的序号(密码)转换为二进制六位数(加密-使他人更难理解)。
赵 1=[000001]2
钱 2=[000010]2
孙 3=[000011]2
······
鲍 62=[111110]2
史 63=[111111]2
这些二进制六位数是加密后对应姓氏的密码。(为什么要用二进制数作为一系列密码?因为每个数字上的二进制数只有0或12种抉择,所以处理起来很方便。)
然后,按数位顺序([C5C4C3C2C1C0])将0位为1的姓氏写在表一中,1位为1的姓氏写在表二中,2位为1的姓氏写在表三中,以此类推。得到6张写有姓氏的纸。每张纸都是一张桌子。每张桌子上都有2个×2×2×2×2=32个姓氏。如下:
表一(0位为1姓)
赵 孙 周 郑 冯 褚 蒋 韩
朱 尤 何 施 孔 严 金 陶
戚 邹 柏 窦 云 潘 奚 彭
鲁 昌 苗 花 俞 袁 酆 史
表2(1位为1姓)
钱 孙 吴 郑 陈 褚 沈 韩
秦 尤 吕 施 曹 严 魏 陶
谢 邹 水 窦 苏 潘 范 彭
韦 昌 凤 花 任 袁 鲍 史
表三(2位为1姓)
李 周 关 郑 卫 蒋 沈 韩
许 何 吕 施 华 金 魏 陶
喻 柏 水 窦 葛 奚 范 彭
马 苗 凤 花 柳 酆 鲍 史
表四(3位为1姓)
王 冯 陈 褚 卫 蒋 沈 韩
张 孔 曾 严 华 金 魏 陶
章 云 苏 潘 葛 奚 范 彭
方 俞 任 袁 柳 酆 鲍 史
表5(4位为1的姓氏)
杨 朱 秦 尤 许 何 吕 施
张 孔 曾 严 华 金 魏 陶
郎 鲁 韦 昌 马 苗 凤 花
方 俞 任 袁 柳 酆 鲍 史
表六(5位为1姓)
姜 戚 谢 邹 喻 柏 水 窦
章 云 苏 潘 葛 奚 范 彭
郎 鲁 韦 昌 马 苗 凤 花
方 俞 任 袁 柳 酆 鲍 史
每张表中姓氏的顺序都会被打乱,这样会更让人困惑。到目前为止,已经编写了密码和密码。
游戏过程是一个“发报-收报-密文-明文”的过程。
报告-报告:摊主在编辑密码之前已经定义了1和0的含义,1表达有,0表达没有。当其他参与者回答摊主的纸(表)上有他的姓氏时,当他们没有时,他们充当被动的报告员,在不知情的情状下将姓氏密码发送给摊主。那些纸上有,这张纸所代表的数字是1,不是0。摊主收到这些信息后,得到了对方姓氏对应的密码—一个二进制六位数(密文)。以下是将(密文)翻译成明文。
密文-明文:摊主收到的原始密码(一个二进制6位数)是一个加密的密文,将这个二进制6位数换算成十进制数,然后将这个十进制数作为序号对比姓氏对比表(密码本),找出对应的姓氏,然后将密文翻译成明文。你知道对方的姓是什么。
举例来说:有人说表三、表五中有他的姓,余没有。
也就是说,他的姓氏密码是2位,4位是1,其他数字是0,这个数字是[010100]2,换算成十进制数
[010100]2=20,检查姓氏对比表,20对应姓氏是许。因此,这个人姓许。
当然,实际操作并没有那么复杂。依据
C5C4C2C1C0
=C5×32+C4×16+C3×8+C2×4+C1×2+C0×1
以知二进制数0位、1位、2位、3位、4位、5位为代表的十进制数分别为1、2、4、8、16、32。因此,只要记住表一、表二、表三、表四、表五、表六对应的数字,分别是1、2、4、8、16、32就行。这样,只要有人说那些纸上有他的姓氏,他就只需要把这些纸对应的数量加起来,收进和姓氏对比表中的序列号。对号进座就知道他姓什么了。
以徐为例,表三、表五中有,但没有剩余。表三和表五分别对应4、16.4+16=20。查姓对比表,20对应许,所以他姓许。
实际玩这个游戏的时候,不需要在每张纸上标注表一和表二的字样,只需要标注一个自己理解的标记。姓氏对比表不需要出现在人身上,可以记在心里,让人感觉更加神异。