用排列组合来编码通信(一)——魔术《年龄透视卡》等

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

在之前的编码通信系列里,我们先是给出基本概念和入门:《编码通信与魔术初步(七)——二进制编码经典魔术《街头猜数字》》;

然后是更本质的群论数学工具的引入:《对称、群论与魔术(十一)——魔术《百变箭头》等和系列总结》;

然后进入了一个应用领域:《文字对称中的数学与魔术(八)——魔术《抓牌奇迹》与系列总结》。

可谓是由浅入深,渐入佳境。今天这个系列我们接着介绍一些有特色背景下的,仍然围绕编码通信原理的魔术,即编码所用的数学结构都是排列和组合这两个经典的数学结构。

排列组合的基础内容不多,在系列开始之前先简短介绍一下。

排列和组合的数学原理

排列和组合是高中数学里非常经典的初等数学内容,不像考试题那样绕圈和无聊,其实这两个概念都是源于对生活中拥有类似结构的对象进行的建模抽象的结果,是用数学理解和建模世界的有利工具。

排列的朴素认识就是一行树,一叠作业本,一排啤酒瓶等等,它首先是个集合。而当这个集合不怎么变化,而需要描述和研究其不同顺序的情况时,我们一般用排列这样的结构来描述。反之,对于时空递推的生成式,可延展的队列,我们一般称之为序列,此时就不强调其源于特定集合的属性了。

排列在教科书上的定义是元素到自身的双射这一数学结构,其实很不好理解。我在《数学文化》上发表的文章里专门阐述过这个问题,更符合直觉的结构应该是一条迹(trail),也就是一个特定的全序二元关系。

上面讲到的排列,一般指全排列,即不存在先选择一部分的组合这一说。但是生活中依然存在这里组合描述的场景,和顺序无关。比如从班级里选择一支队伍参赛,从笼子里选择几只鸽子去送信等等,本质上是一个集合内选择子集的问题。当集合给定,选择子集大小也给定时,那么这类问题我们称为组合问题。

对取得的组合进行再度排列,就是二者的结合了,也称为排列,或子排列。方法数是直接相乘的,因为每个集合的元素不一样,自然两个不同集合排列的结果一定不同,这是互斥性(不重复);而每个排列结果也一定可以找到选择组合再排列的过程,不会遗漏。又根据乘法原理,刚刚好,它们在选定组合后再排列时是对称的(元素数一样),没有因为不同组合而后面的排列数就有区别,因此有了用乘法来化简计算的办法,最终因此适用。

而高中对排列组合的学习停留在公式计算阶段,抹去了原本是集合和映射上的概念,这里有两个点需要有意识地理解:


1. 排列组合公式计算的是满足的特定条件集合的大小,全排列的本质是到自身的双射关系的个数,组合的本质是集合给定大小子集的个数,一般排列是二者的乘法连接,所以我们算的不是干巴巴的数,而是真的是个特定的集合;

2. 排列组合公式背后有很多原理性的知识需要理解,包括乘法原理,对称性,等效,递归等,并在条件发生变化的时候,能够根据原理解决问题,而不是错误的套用公式。这一点我们在数学系列文章《对称思维的妙用之从解题到本质(六)——网红鸭子半圆概率问题的多种解法》中,有一定的阐述,可以看看。

好了,关于排列组合更多的思考内容,我们到排列组合相关章节会再详细说明,这里先讨论这么多。

而在排列和魔术结合的地方,有很大的篇幅是和扑克牌排列相关的,那个我们后面会再讲。而这个系列的排列,强调的并不是扑克牌排列,而是任意的可以有排列结构的地方进行编码。扑克牌排列的魔术,包括群描述手法,以及排列本身的一些操作性原理,构成另外的系列,到时候再分享。

字母预言卡

视频2 字母预言卡

这个魔术在《字母预言卡里的魔术与数学(四)——Sperner's Theorem的美妙证明》系列文章中已经有详细的介绍和说明,无论是数学侧还是魔术侧,在此就不重复了。直说一句,这个魔术里面所蕴含的数学和魔术知识的融合,让我又一次体会到这两门艺术融合在一起时,有多美妙。希望你也能感受到。

年龄透视卡的奇迹

视频3 年龄透视卡

这个道具也是我近来收获的一个很好的作品。研究了不少时间,想清楚了一些问题,但仍然有没有明白的地方,在这里和大家分享。

首先,这叠卡片里一共有7个选项需要选择,最后一个是装饰作用不用理会。和街头猜数字一样,每次回答是否,那么7张理论上可以编码2 ^ 7 = 128种选项对应的信息,即最多7个bit。而年龄的范围,在上面,其实是0~99的数,两位数也是在前面补了零的。所以,理论上看,这些信息总量,是足够编码需要的结果了。

但是事情没有这么简单,有时候,往往是信息多了,反而不知道怎么处理。

这7张卡片又分为了两类,其中4张是4个局部透光的卡片,经过分析,这些卡片恰好编码了一个在2 ^ 2 = 4个窗格中(上下和左右),某一个中5个位置内,连续相邻的两个位置中的一个,故共4 * 4 = 16种结果。而最后的那两排数,由另外3张卡片完成,一共7种结果,因为,当两张一半透明一半间隔着数字的卡片都选的间隔数字的时候,当那张全数字的卡片的方向就没有什么作用了,即110和111是同一个编码结果。所以真正有效的编码数只有16 * 7 = 112,好在还是超过了我们所需。

现在问题来了,现在需要求三张卡片上的数字组合,使得其上每个框框上的4个长度为2的子串能完全覆盖这00~99这所有的二位数以内编码。这不是一个很容易的问题,首先,编码很容易重复,因为二位数之间首位相接,还需要相互覆盖;另外,这个问题的复杂度非常高,一共有60个数要填,那总的解空间就是10 ^ 60。且注意,这些数字之间是等价的,因此等价类的方案应该是10 ^ 60 / 10!,不过这对于降低总的解空间来说虽然很多,但是杯水车薪。

拿计算机硬算是不行了,可以尝试一些启发式方法,或者贪婪策略,去试着找到一两个可行解看看就够了,一个是立马可以证明,这种解是存在的,另外,这个解并不需要魔术师记住,印在卡片上,直接就可以使用。

然而,当我看到这套道具上高度对称的解的时候,让我自己都产生了疑惑,原来真的存在这么美的解?这绝非计算机所能乱找找到,而是一种数学直觉加严谨推导得到的。花了几天时间,我验证了这个解的正确性,但是我仍然没有搞清楚作者是采用什么样的思路来构造这样一个解的。

不过一个可以用来反向破解的线索是,这是一个编码112种可能,却只用了其中100种(00是可以编码的,只不过没用),那12种是哪些数字对应过去的多个位置选项呢?说不定其中就有所奥妙了。

我把这个数字组合和对应的序列放在这里,大家如果有思路,发现了这个解生成的规律,一定记得和我来分享!

其实,这个表面上的数字集合倒是不是很重要了,因为根据那个解,应该就能自动生成出来了。所以,大家重点关注那几个数字序列里面的规律。

图1 年龄透视卡

       e3a4ac3dccb968497d488816b362cac0.jpeg        

好了,这篇文章就先写到这里,加上之前《编码通信与魔术初步(七)——二进制编码经典魔术《街头猜数字》》和《字母预言卡里的魔术与数学(四)——Sperner's Theorem的美妙证明》里的介绍,算是对市面上卡片读取类的编码通信魔术的一个汇总了。只是因为特点不同,我们把它归在了不同的系列下面,而从魔术效果上看,它们是一个系列的。

下一篇我们继续介绍排列组合编码作品,视频先睹为快了:

视频2 Max Maven五重心灵感应

631361b10d29b5769f9abdfe70cd935c.gif

我们是谁:

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

63d3ab1206eb807705f59b59827fb460.gif

f753fcade2af1ebe725fd04e36166c31.png

34b013f3f5218d5ec44320be0f0e28c4.jpeg

扫描二维码

关注更多精彩

好魔术背后的秘密

对称思维的妙用之从解题到本质(六)——网红鸭子半圆概率问题的多种解法

文字对称中的数学与魔术(八)——魔术《抓牌奇迹》与系列总结

魔术缘何而给你惊喜?

我的数学学习回忆录——一个数学爱好者的反思(二)

9c02fe222062b8a88350c4251ec7ce65.gif

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值