美文网首页技术工具癖程序员
双11前福利,二进制里的撩妹(汉)读心术

双11前福利,二进制里的撩妹(汉)读心术

作者: Python小魔 | 来源:发表于2016-11-09 20:13 被阅读1210次

    近些年来,小魔发现,对于年轻的男女而言,一些传统的节日似乎都变成了情人节或者脱单节,就连“光棍节”,实际上很多人都是抱着节前或者是当天脱单而过的。双11“光棍节”即将来临,为了祝福大家脱单能取得成功,小魔在此分享一个用来撩妹撩汉的读心魔术。

    小魔曾经在高中和大学的班级联谊中都表演了这个魔术,效果甚佳,甚至可以大胆的牵对方的手!!!

    大胆牵手

    首先介绍大致表演流程:

    (1)告知观众可以猜出观众心中所想,但观众大部分会不认同。

    (2)为了证明拥有读心的能力,拿出一张写有很多数字卡牌(这里小魔称它为“主牌”,约30个数字),让观众选择其中一个数并且要求观众牢牢记住

    (3)检测观众是否记住了那个数,依次给观众看剩余的5张也写着很多数字的卡牌,让观众如实回答是否能在卡牌中找到那个数字

    (4)完毕后,握住观众的手进行感应,沉思数秒后,说出了观众心中所想,观众表示“我伙呆”!!!

    也许看到这里,读者会有点懵逼:怎么做到的?!但仔细再回想下小魔的这篇文章的题目里的关键字——二进制!在解析这个魔术之前,我们首先要感谢一下18世纪德国数理哲学大师莱布尼兹,因为他发现了二进制,于是才有了这个魔术的原理基础——10进制与二进制的相互转化。

    伟大的莱布尼茨

    NO.1 表演前的准备

    这个魔术理论基础非常简单,就是利用下面的十进制与二进制的转化表(不需要记忆)即可制作整个魔术所需道具——那5张卡牌以及那张写有31个数字的主牌。

    主牌的制作: 将 1~31这31个数字乱序写入主卡牌中,小魔非常建议不要以从小到大或者从大到小的顺序写在主卡牌上。因为乱序可以减弱观众的对最大数字和最小数字的敏感程度,这是细节。

    十进制与二进制的转换

    卡牌1~5的制作:在上表卡牌1~5中,凡是该卡牌所在列有“1”的所对应行的十进制数,都应该乱序地写在该卡牌上,因此(不需要记忆,只用来制作卡牌的):

    写入卡牌1的是16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31

    写入卡牌2的是8,9,10,11,12,13,14,15,24,25,26,27,28,29,30,31

    写入卡牌3的是4,5,6,7,12,13,14,15,20,21,22,23,28,29,30,31

    写入卡牌4的是2,3,6,7,10,11,14,15,18,19,22,23,26,27,30,31

    写入卡牌5的是1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31

    各卡牌所代表的权值(需要记忆)

    卡牌1:2^4 = 16

    卡牌2:2^3 = 8

    卡牌3:2^2 = 4

    卡牌4:2^1 = 2

    卡牌5:2^0 = 1

    制作完卡牌时,准备工作就完了。

    No.2 表演时段

    开场白,小魔面向观众说:“大家有听过读心术吧,你(们)相信我有读心的能力不?”

    90%的观众都表示怀疑,而且会问:“那请你告诉我,现在我心里想的是什么吗?”

    此时,小魔会回答:“暂时是没办法得知,主要是我们现在还没建立起感应,我需要放大你的脑电波才能感应出来。”

    观众又会问:“怎么放大呢?”

    这时小魔展示写有乱序的(1~31)数字主牌,让观众选择并且默默记下其中一个。再次确定观众是否记住了那个数字,如果观众记住了那个数字,就依次地将剩下标号1~5的五张卡牌展示给观众看,同时问观众那个数字是否在卡牌中,并解释说这样做是为了加强观众对该数字的记忆脑电波。(这里假设观众选择了23)

    接着,记下观众指出存在那个数字的那些卡牌,将这些卡牌所对应的权值(在No.1步骤中需要记忆的)进行相加,所得和就是观众选择的那个数字!比如之前观众选的数字是23,那么他会在被询问哪些卡牌有这个数字时,指出卡牌1、3、4、5的里面有该数字存在,其中卡牌1、3、4、5的对应权值分别为16、4、2、1,所以根据各卡牌权值计算所得和:

    原数字 = 16+4+2+1 = 23(bingo!)

    最后,牵(握)着妹(汉)子的手,装作在感应ta的想法,神秘的跟ta说:“恩,好啦,我感应完毕了......我猜,你选的是XX吧~”

    惊呼!~

    No.3 原理解析

    注:如果觉得No.3这一段比较难理解可以忽略,只需掌握上面的就可以了,接下来所讲解的知识对这个魔术的进一步各项拓展

    这个魔术原理其实就是利用二进制与十进制之间的相互转换原理,如果是程序员可能就更加明白小魔所说的。举几个十进制转二进制栗子对比下(下面式子括号内的是表示几进制):

    23(10) =1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 +1×2^0=  10111(2)

    31(10) =1×2^4 + 1×2^3 + 1×2^2 + 1×2^1 +1×2^0=  11111(2)

    8(10) =0×2^4 + 1×2^3 + 0×2^2 + 0×2^1 +0×2^0=  01000(2)

    二进制中,五位二进制数最大能表示的10进制数字是2^5-1=31,即二进制的11111;六位二进制最大能表示63,即二进制的111111,同时,主卡牌的数字范围为1~63,卡牌1~6的权值分别为32,16,8,4,2,1,还可以根据五位二进制与十进制间的转换表推出六位二进制与十进制的转换表,小魔这里就不写了。(下面式子括号内的是表示几进制)

    32(10) = 1×2^5 + 0×2^4 + 0×2^3 + 0×2^2 + 0×2^1 +0×2^0=  100000(2)

    63(10) = 1×2^5 + 1×2^4 + 1×2^3 + 1×2^2 + 1×2^1 +1×2^0=  111111(2)

    最后列出来自于百度百科的二进制表示(转化)法:

    二进制表示法

    No.4 文末提醒

    尽量别用0,因为0是比较起眼,而且很容易被观众找到规律。

    制作主牌和5个卡牌时,首先要尽可能将数字乱序地写入卡牌中;尽可能私底下记住卡牌的编号,而不是通过在卡牌背面写上数字来区别辨认。

    只要按照小魔的步骤,即使不看No.3的内容和理解其中的原理也可以表演的,就像不用知道为啥钥匙能开锁,只需要这把钥匙能开这把锁就好;在准备之后的整一个表演过程中,仅仅需要记住卡牌对应的标号的权值和简单的心算即可。

    如果有喜欢本文或者对本文内容有疑问的读者,就来个评论或者喜欢呗(小魔会说更喜欢打赏?),那小魔就会整理出更多干货的,非常感谢你们的支持!

    相关文章

      网友评论

      • 730af1980bce:程序员界的罗永浩😂
        Python小魔: @麦子爸爸 哈哈哈,谢谢
      • 别声张:厉害了world哥
        Python小魔: @小鹿爱读书 小魔觉得程序员经常接触到的知识很多都可以作为魔术的原理
      • 一只猫的日常:文末提醒的排版是怎么排的丫???
        Python小魔:@猫球球扯犊子 你指的是文章排版吗?引用加回车就可以了......还是指那5张卡牌上的数字顺序?
      • i_have_an_Apple:发现两处写错的地方
        Python小魔:@lllqqq 非常感谢你的指正,已修正
        i_have_an_Apple:@魔术师JeffreyChu No.1表格第二行,No.3 数字31应该是11111
        Python小魔: @lllqqq 请问是哪里呢😊
      • Python小魔:其实还有其他玩法,不一定是利用二进制,还有普通的卡牌编号直接求和也是可以的,只不过二进制比较难破解罢了 :smile: ,欢迎交流!

      本文标题:双11前福利,二进制里的撩妹(汉)读心术

      本文链接:https://www.haomeiwen.com/subject/mziauttx.html