数学魔术系列之程序猿勾引mm的两招
世界上有10种人,1种是懂二进制的,1种是不懂二进制的。
今天,让大家来看一看科学青年怎么用二进制来完成追女的任务,下面是两个可以用来勾引mm的数学魔术。
1、初级版:四张卡片猜出你的星座
泡 MM 时怎样问出对方的生日?先问她的星座吗?现在已经不流行了。这里给你支招:借助一些数学知识,你就能用 Geek 特有的方式问出她的星座。
举个例子,如果你是史上最不幸的、每四年才可以过一次生日的那个人,出生日期是 2 月 29 日,那你的星座一定是双鱼座。这样,你的星座只有在图片 C 和 D 中才可以看到,在图片 A、B 中都看不到。把这个结果告诉魔术师,魔术师经过一番心灵感应后,就可以确定你是双鱼座。
魔术揭秘
对于不明真相的围观者来说,这个魔术会显得很神奇。不过,一部分理工男却能一眼看穿魔术的蹊跷之处。魔术师具体的做法是,首先在心里安装一个“计数器”,一开始数字为 0。如果你的星座出现在了卡片 A 中,魔术师就会在计数器上加 1,否则计数器数字不变;如果图片 B 中有你的星座,他就会再加上 2 ;图片 C 中有你的星座,计数器就加上 4;图片 D 中有你的星座,计数器就会加 8。计数器最后得到的数字就是答案了。比如按照刚刚那位“生日帝”告诉魔术师的结果,计数器的数字就是 4 + 8 = 12。然后,让文章开头那张图中隐藏的数字显示出来:
数字对应的结果就是心灵感应到的星座了。
二进制计数法
正常情况下,数字 12 可以写成 1×10 + 2×1,其中 1 是十位数字,2 是个位数字。如果这个数字更大,还会有百位、千位等等。这些数位的单位从小到大分别是 1、10、100、1000⋯⋯
可是我们还可以用另一种方式来表示一个数,就是魔术师所用的方式——二进制。在二进制中,12 = 1×8 + 1×4 + 0×2 + 0×1,在这里,数位的单位由 1、10、100、1000 变成了 1、2、4、8,同时每个数位上的数字也由 0 到 9 十种变为了 0 和 1 两种,12 也就可以用 1100 来表示了。卡片 A、B、C、D 分别是从小到大的 4 个数位,由于 12 号星座——双鱼座——的二进制表达是 1100,因此双鱼座就只在卡片 C 和 D 上出现。在四张卡片上指认星座的时候,你也就把星座对应的数字的二进制表达偷偷泄露给了魔术师,如果你告诉魔术师有,就相当于告诉他了那一位数字是 1,反之,那一位数字就是 0。
二进制的用途非常广泛。计算机正是像这位魔术师一样,用二进制来表示各种数字。
2、进阶版:泡MM,没有缘分也要制造缘分
在泡 MM 的时候,只问出她的星座是远远不够的,最关键的是要让 MM 知道你们俩心有灵犀,这样才能真正赢得她的芳心。这一次,我们再来一个进阶版的魔术。
首先,把一副扑克牌中的大小王和四个 K 去掉,这样 54 张牌就只剩下 48 张了。
把这 48 张牌交给MM,让她洗一洗牌。然后,把洗过的牌在桌子上正面朝上一字摊开。
“现在,我要用我的心去选一张我最喜欢的牌”,你可以说,“就这一张了,黑桃 5。” 然后把这一张牌抽出,背面朝上放到一边。
把剩下的牌重新收起来,对 MM 说:“你用你的心来感知这一叠牌的一半数量,把它们拿起来放到你手里吧。”等 MM 拿好牌后,你说:“你准确地知道手里有多少张牌吗?”MM 没有数过,自然不会知道。“我也不知道。整副牌现在有 47 张,你手里可能有 22 张、23 张或者更少;如果你刚才手狠了一点,手里可能会有 24 张、25 张或者更多。不过无论如何,如果这副牌象征着你和我的爱情,那么你拿走的一半就象征着你的心,这一切都是上帝的安排。”
下一步,要求 MM 把这叠牌背面朝上握在手里,从第一张牌开始,交替地把手里的牌分成左右两堆:第一张牌背面朝上放到左边,第二张牌正面朝上放到右边,第三张背面朝上放在第一张牌上,第四张牌正面朝上放到第二张牌上……等到手里的牌全部分完后,拾起那叠正面朝上的牌,翻过来,再像刚才那样,分成背面朝上和正面朝上的两叠。然后再拿起正面朝上的那一叠,不断继续下去。到最后,MM 手里就只剩下一张牌了。
此时你把魔术最开始的时候抽出的那张牌拿出来:“我用我的心做出的选择和你用你的心做出的选择是一模一样的。”
魔术揭秘
这个魔术的关键在于,开始的时候,“我要用我的心去选一张我最喜欢的牌”,的确要“用心选择”——要“别有用心”地选择。首先,看清楚从左到右数第 16 张牌是什么牌,然后在 16 张之后的牌中选择一个和那张牌数字相同的(其他的三个 5 全部集中在前 15 张的可能性不大,如果出现了,就再洗一次牌吧)。
只要 MM 拿起的牌是在 16 张到 31 张之间(不必正好一半),魔术就会成功。把这半副牌左一张右一张分成两部分的过程可以这样来理解:将整副牌自上而下编号(牌是背面朝上的),所有编号为偶数的牌会被分到右边那一堆。也就是说,牌的编号被 2 除时,余数是 0 的牌就会被归到右边。进行第二轮分牌的时候,所有第偶数张牌会被归到右边,这些牌就是初始序号连续除以两次 2 都余 0 的牌。分了四次以后,在小于等于 31 的数字里,连续除以四次 2 余数都为 0 的只有 16。也就是说,不管 MM 拿了多少张牌,只要牌数在 16 到 31 的范围内,最后她手里剩下的那张牌一定是整副牌里的第 16 张。下面这张表格以 MM 手中有 24 张牌为例,详细说明了四次分牌的过程:
和猜星座的魔术一样,这个魔术与二进制也有关系。16 用二进制表示是 1000,后面三位都是 0;在 1 到 31 的数字里,这是独一无二的。看来,二进制不仅是计算机程序猿们必须要知道的知识,在勾引 MM 领域也是大有用途的。
本文已发表于果壳网