早点关注我,精彩不错过!

在前面的文章中,我们已经介绍了几个应用编码和通信原理的基本魔术,都是经典作品,相关内容请戳:

编码通信与魔术初步(六)——经典魔术《傅氏幻术》赏析和《我的心灵感应》

编码通信与魔术初步(五)——编码通信魔术入门《3 * 7的感应》

编码通信与魔术初步(四)——通信编码魔术的基本原理

编码通信与魔术初步(三)——最大熵模型

编码通信与魔术初步(二)——信息论基础

编码通信与魔术初步(一)——通信浅谈

今天我们进入最后一个经典佳作,看看你有没有熟悉的感觉。

街头猜姓氏/数字

视频1 街头猜数字

这个魔术我小时候在很多地方见过(或许你也是),大街上,古玩店里,以及后来在淘宝店里。大体流程是魔术师会拿出一叠卡片,去询问每张卡片上有没有观众所想的数字或者姓氏等其他内容,问完以后,魔术师就感应出了结果。

因为其来自于街头巷尾,又和经典的《街头猜姓氏》呼应,便取了这个名字。

街头猜姓氏/数字数学原理

用今天我们学到的观点来分析下。如果是六张卡片,每张都有一个是或否的答案,每张卡片就编码最多2个选项,对应最多1个bit的信息(为了方便分析,我们假设选择是均匀分布的,用这种最优,熵最大的结果,去探讨可行性)这样算来,最多就是一共6bit,共计64个选项中的一个。显然对于这以内个数的数字,姓氏,都可以顺利完成编码最后再由魔术师解码返回。而姓氏等姓氏,无非是在数字编码基础上再加了一层一一映射而已。但依稀记得我那时候应该还在读小学,哪懂什么二进制,但是我大体分析出,应该是每个数字在每张卡片上的出现与否都不同的结果。于是直接从1开始,去列举所有的出现方式,往6张卡片上填数字,经过了大约半小时的紧张校对,我自己做成了那6张卡片的道具!那样的兴奋对当时的我是很珍惜的,还有一次类似的,便是用透明胶粘了一副牌,做了一套绿野仙踪。当时我只是不知道这玩意有二进制编码这个名字罢了,其实执行的就是对应的操作。即,每个数字的出现与否所形成的二进制序列对应的值,恰好是观众所选。因此,就按照这个方式把数字打印在各张卡片上就好了。谁要我们是十进制而不是二进制呢,所以,看上去每张卡上的数字,并没有明显的规律,不然,你把他们用二进制编码打出来试试?其实啊,进制数仅仅是自然数的编码而已,各种编码之间是可以相互转化,一一对应的。

理论上,一共可以编码64个数,0~63,但是如果这样给选项,未免太过明显地有数学痕迹,所以改成了1~60,这和3 * 7的魔术原理是一样的,魔术里的艺术极致和数学里的科学极致目标有一些区别,体现在其优化目标是魔术效果,而非数学的应用程度和完备性。当然如果是姓氏就无所谓了,因为早就抹去数字的痕迹,但是要承担可能整个64个都没有的后果,而且也需要像De bruijin序列魔术一样准备一张表来查。

别以为这样的转化一点也了不起,要知道这种朴素地用自然数的二进制编码来表示离散字符的方案,正是我们每天用的unicode码的原型,再往前则是ascii码,编码128个显示与非显示字符,unicode则最多有17个平面,每个有2bytes的位置来编码2 ^ 16种可能的字符,而因为不同字符使用的频率实在差距太大,因此又用到了如utf8等压缩编码的技术。而这一切,似乎都是和街头猜姓氏这个魔术有着隐隐的联系。

还有一点,因为所有给定位为1的数字,最小的就是形如2 ^ n的那个,它会出现在每一张卡片的第一个。而在二进制数往10进制解码的时候,也是用2 ^ n乘以各个码位的值,在二进制里,就只有加和不加的两种选择。因此,最后其实顺序乱了也无所谓,直接把观众说是的卡片的第一张加起来就可以了,这就是解码公式,用加法完成,加法,有交换率!一开始我还觉得,居然可以直接加起来就得到结果,以为是一个天大的巧合和秘密,但是当思维层级上来,当成是编码解码函数,当成是进制数的编码转换的时候,一切便干净澄澈了。

街头猜姓氏/数字相关杂感

写到这里,脑子里蹦出很多相关的思考。比如,我觉得二进制和其他更高进制还是有着本质区别的。这区别就在于,它天然可以表示是否,有无的二分类的意思,非黑即白,就像上面的二进制编码解码成十进制数一样,只有出现和不出现两种选择,看起来就没有系数的概念了。而多分类的变量就做不到这一点但是反过来二分类可以多个组合起来别扭但是等价地表示多分类变量。就连在集合语言中,多分类的叫互斥,二分类的才能叫对立。这种有无的概念,本身是不具备数值意义,大小意义的,而且早就天然存在,比如电路状态,它是天然有物理背景来支撑的,却可以用来表达和它的本义毫不相干的加减乘除,那就实在是太奇妙了。二进制是计算机的根基,由它转化而来的一切,便是计算机分发复杂而又美丽多姿的世界。

关于二进制,我们在《关于洗牌的研究(二)——你的扑克洗乱了吗?》系列中介绍完美洗牌中曾经介绍到,大家有兴趣可以对这一编码方式和一些运算性质,进行回顾,关于这个的深入探讨,我们后面也会再写文章展开讨论,敬请期待。

另外,进制类的编码通信其实除了这个完整的魔术应用,还有很多其它的局部使用。比如一些魔术中托使用左手或者右手,是否翻面,有没有跷二郎腿等等,都可以方便地作为二进制信息传递出来,因为二分类的对象天然就是最容易编码和通信的。当然也不乏有一些3进制和更高进制通信的应用,在特殊的地方有特殊的用法,我们在后面的其他专题会再讲到。

最后提一下,这类卡片感应的魔术,在市面上有很多的变体和拓展,但是整体都是编码通信原理的应用,只不过编码方式有所区别,通信方式都是通过这些卡片和观众的回答所得到的信息来编码答案的。在本初步编码通信系列里,我们先介绍这个最基础的,还有另外的之前介绍过的《字母预言卡里的魔术与数学(四)——Sperner's Theorem的美妙证明》系列是用的组合编码,以及一些其他的佳作,我们在后面的系列再专门系统介绍。

本系列到这里就全部结束了,从编码通信的理论出发,我们介绍了很多经典的作品,算是先入门一下,接着还会有相关的更加细致的编码通信的系列与大家见面,下个系列见!

我们是谁:

MatheMagician,中文“数学魔术师”,原指用数学设计魔术的魔术师和数学家。既取其用数学来变魔术的本义,也取像魔术一样玩数学的意思。文章内容涵盖互联网,计算机,统计,算法,NLP等前沿的数学及应用领域;也包括魔术思想,流程鉴等魔术内容;以及结合二者的数学魔术分享,还有一些思辨性的谈天说地的随笔。希望你能和我一起,既能感性思考又保持理性思维,享受人生乐趣。欢迎扫码关注和在文末或公众号留言与我交流!

扫描二维码

关注更多精彩

你真的分得清“前后左右”和“东西南北”吗?(四)——无处不在的相对方位

编码通信与魔术初步(六)——经典魔术《傅氏幻术》赏析和《我的心灵感应》

知道魔术的秘密很了不起吗?

学数学,要“直觉”还是要“严谨”?

对称、群论与魔术(十一)——魔术《百变箭头》等和系列总结

点击阅读原文,往期精彩不错过!

编码通信与魔术初步(七)——二进制编码经典魔术《街头猜数字》相关推荐

  1. 对称、群论与魔术(六)——经典魔术《对称找牌》

    早点关注我,精彩不错过! 在前面的文章中,我们聊完了对称性的呈现和群论描述,以及从简单到复杂的在扑克牌上,对称性的具体分析,相关内容请戳: 对称.群论与魔术(五)--真实扑克牌图案的对称性探索 对称. ...

  2. 对称与魔术初步(六)——魔术《4选1的诅咒》等

    早点关注我,精彩不迷路! 在上一篇作品中,我们欣赏了刘谦的经典魔术<幻境>,相关内容请戳: 对称与魔术初步(五)--刘谦经典魔术<幻境> 对称与魔术初步(四)--经典魔术< ...

  3. 猜数字小游戏html,经典小游戏猜数字

    猜数字(又称 Bulls and Cows )是一种古老的的密码破译类益智类小游戏,起源于20世纪中期,一般由两个人或多人玩,也可以由一个人和电脑玩. 本文尝试用树莓派人工智能技术实现经典的pytho ...

  4. C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)

    题目描述:输入1-100之间的数字,进行猜数字游戏,猜大猜小有提示,直至才对为止,游戏可以重复游玩. 算法思路: 1.用void函数分别写出菜单程序与游戏进程程序. 2.用switch-case-de ...

  5. c语言经典编程案例猜数字,用c语言编程猜数字

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //NumberRiddle.c //这个程序还没有做完,用户输入检测部分没有做,不继续了.2009-12-22 //猜数字游戏 //游戏规则: //电脑 ...

  6. 经典简单的猜数字小游戏

    目录 前言 思路 方法 实现过程 1.我们先从易到难,打印出我们的菜单.(采用函数的方法,届时我们可以直接使用) 2.接下来,我们可以实现游戏主体(仍然采用函数的方法,代码更加清晰) 生成随机数的方法 ...

  7. 编码通信与魔术初步(五)——编码通信魔术入门《3 * 7的感应》

    早点关注我,精彩不错过! 在前面的内容里,我着重介绍了通信模型,信息论,以及把这些理论用在魔术上的基本思路.最后尤其说清楚了编码通信魔术的应用边界,是以辨识力效果作为主要表现形式的这类魔术的主要数学原 ...

  8. 编码通信与魔术初步(一)——通信浅谈

    早点关注我,精彩不错过! 从今天开始,我将给大家介绍在数学魔术中非常值得浓墨重彩,大书特书一笔的一个系列--通信与编码.它是支撑21世纪信息世纪几乎最重要的数学基础理论,而且在魔术这个小领域里也有着十 ...

  9. 编码通信与魔术初步(四)——通信编码魔术的基本原理

    早点关注我,精彩不错过! 前面我们介绍了通信模型以及信息论的关键概念,知道了噪声信道模型以及,信息,熵等概念的物理意义,最后以最大熵模型收尾.相关内容回顾: 编码通信与魔术初步(三)--最大熵模型 编 ...

最新文章

  1. swift 浮点型字符串的运算
  2. ASP.NET 4.0 的新特性(2 在WebForm中使用Routing)(翻译)
  3. 【小白学习Keras教程】四、Keras基于数字数据集建立基础的CNN模型
  4. [css] 举例说明:not()的使用场景有哪些
  5. ul 原点显示_web前端开发学习教程,CSS HTML - ul li列表原点如何相连
  6. matlab预测ARMA-GARCH 条件均值和方差模型
  7. kali linux 网络命令,Kali Linux系统连接Wifi无线网络命令:
  8. mysql 5.6 外键_mysql 5.6外键约束错误;没有发生在5.5
  9. small - HTML元素
  10. jQuery.fn.extend 与 jQuery.extend 用法
  11. linux:fdisk分区命令详解
  12. 四、bootstrap-Table
  13. python覆盖数据库重复数据_如何在数据库中插入唯一数据/处理重复数据
  14. 无人机倾斜摄影三维建模技术在智慧城市中的应用
  15. Caml 多表关联查询
  16. 太牛了!B 站 UP 主开发会写高考作文的 AI
  17. flac转mp3教程flac怎么转mp3才能减小音质的丢失
  18. Webx系列之文件上传
  19. Android常用颜色收集colors.xml
  20. 办公小技巧:excel纸张大小设置

热门文章

  1. 分解因数 java版
  2. 亲爱的老狼-定位position的应用
  3. 微信 jsapi支付 和 Native支付 php
  4. yum一次性下载安装包及其依赖包
  5. thinkjs的这个bug害人不浅
  6. centos6如何添加阿里云centos和epel源
  7. 简单粗暴通俗易懂的理解贝塞尔曲线
  8. Python学习笔记(12)-Python进阶12-类和对象
  9. 芝诺悖论------芝诺的乌龟
  10. 华为员工利用Bug越权访问机密卖给第三方,获利1.6万元,被判有期徒刑一年