用排列组合来编码通信(四)——魔术《5张牌的预言》的数学拓展

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

在上期的文章中,我们已经讲解到了编码通信类魔术中利用托来完成的经典作品《5张牌的预言》,前面的相关内容请戳:

用排列组合来编码通信(三)——魔术《5张牌的预言》

用排列组合来编码通信(二)——魔术《Max Maven五重心灵感应》赏析等

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

在上一篇文章的最后,我提出了一个纯数学问题供大家思考:即我们通过随机选择的5张牌,让托选一张,并用剩下4张的排列来编码这么个编码框架来进行,最多能编码多少张牌,具体该怎么进行编码和解码呢?

在讲解问题之前,还是先回顾一下原来的魔术内容。

视频1 5张牌的预言

问题分析与解

我们可以先用信息论的知识计算一下牌张数的上界是多少。总共5张牌,4张的约定顺序的排列,再加上托指定的选牌有5种,因此整个可以编码的信息总共有A(5, 5) = 120种可能性,即log120 bit,所以约摸可以最多有120张牌。

那这该怎么编码呢?首先是待预测的牌,选择的5张C0, 1, 2, 3, 4中,我们约定按大小顺序,其和mod5为多少,就选择大小排序第几的牌(从0开始),即选牌索引为sum(Ci)。这种非自由的约定选牌方式可以看作是对这个log 5 bit信息的使用了。于是剩下的牌给观众可以看到其对应的大小排列,可以有24个选项。那问题来了,这总共够编码多少个数呢?24个肯定不止,但最多是多少呢?

我们不妨从需要解码的魔术师的角度来想一想。他看到4张向上的牌,可以编码出1~24中的一个数来。同时,魔术师并不知道这5个数的和mod5的值是多少,但这非常关键。因为一旦知道,就可以立刻锁定其在4个显示出来的值之间的范围,立马就可以减少很多可能性。

于是我们尝试作一下分类讨论:假设被盖住的牌为x,有x + sum(C'i) == sum(Ci)(mod 5),其中C'i表示展示出来的4张牌的排列,x(mod 5)有5种可能性,每种可能性下可以计算得出sum(Ci)(mod 5)的值,该值因为选择牌张方式的问题,相当于编码了这个数的范围到底在[1, C'1 - 1], [C'1 + 1, C'2 - 1], [C'2 + 1, C'3 - 1], [C'3 + 1, C'4 - 1], [C'4 + 1, M]的一个约摸价值log 5 bit的信息(不妨设C‘0 + 1 = 1, M = C'5 - 1)。显然这个信息在不同情况下价值不同,因为对应的范围缩小能力有所区别。但是其期望,也就是熵,一定是log 5 bit。如果我们真的可以把整个全排列的全部信息打满,编码log(A(5, 5) + 4)bit的信息的话,其中4是被排除掉的已经显示出来的4张牌的点数。

答案是可以的。设x == 0(mod 5),那么其可行解出现在第sum(Ci)(mod 5) + x = sum(Ci)(mod 5)个区间内,设为第A个,且这个区间内第一个满足x == 0(mod 5)条件的解为x1,则由此一系列的解为x1 + 5, x1 + 2 * 5, ......, x + 5(n1 - 1),满足下一个解x + 5n1一定要大于其闭区间的右端点。

我们接着看x == 1(mod 5)的情况,此时sum(Ci)(mod 5)也会跟着加1(mod 5),那可行解的范围自然地会推演到下一个区间。显然x + 5(n1 - 1) + 1这个数是满足x == 1(mod 5)条件的,至于它在不在接下来的那个区间里,有如下情况:

1. x + 5(n1 - 1) = C'(A + 1) - 1,即上一个区间的最后一个可行解刚好是闭区间的右端点。此时x + 5(n1 - 1) + 1被选走,故下一个解为x + 5(n1 - 1) + 6(如果这个值也超出了下一个区间的范围,直接跳到相应的区间和情况即可);

2. x + 5(n1 - 1) != C'(A + 1) - 1,此时x + 5(n1 - 1) + 1必然还在前一个区间内,下一个元素x + 5(n1 - 1) + 6是一定超出上一个区间元素的下一个元素,故一定在新的区间内。

综上,无论哪种情况,在跨区间时候的可行解,无非是要比5再多加1而已,这种情况一共发生4次,因此,整个可行解空间为:

x1, x1 + 5, x1 + 2 * 5, ......, x1 + 5(n1 - 1), 

x1 + 5n1 + 1, x1 + 5(n1 + 1) + 1, ......, x1 + 5(n1 + n2 - 1) + 1, 

x1 + 5(n1 + n2) + 2, x1 + 5(n1 + n2 + 1) + 2, ......, x1 + 5(n1 + n2 + n3 - 1) + 2, 

x1 + 5(n1 + n2 + n3) + 3, x1 + 5(n1 + n2 + n3 + 1) + 3, ......, x1 + 5(n1 + n2 + n3 + n4 - 1) + 3, 

x1 + 5(n1 + n2 + n3 + n4) + 4, x1 + 5(n1 + n2 + n3 + n4 + 1) + 4, ......, x1 + 5(n1 + n2 + n3 + n4 + n5 - 1) + 4

其中ni为在第i段内的可行解的数量,我们希望总可行解的数量是sum(ni) = 24。

以上的区间顺序是以x == 0(mod 5)来定义的,而如果从要求元素取自第0区间开始,也就是x + sum(Ci') == 0(mod 5),也可以推算出,x = - sum(Ci')(mod 5),这个角度也能方便更好地理解。

注意以上运算都取mod(M - 4)进行,看作是一个整数mod (M - 4)加法群内的结构下的运算,每个值其实是用其剔除掉4张已经显示出来的牌以外的序来索引的。我们知道,这个序列最多可以容纳24个元素,也是作为一个大小有序排列的信息上限。当M过大时,元素总数sum(ni)就会超过24,进而信息量不足,无法完成编码。

故当且仅当,最后一项的下一项等于首项,即x1 + 5(n1 + n2 + n3 + n4 + n5) + 4 == x1(mod M)时,我们用满了所有的可能性,共计M = 5 * 24 + 4 = 124个元素。否则,若M更小,一定会浪费若干重复编码,若M更大,则可能存在编码覆盖不到的情况。

其实你如果理解了,每个元素其实是用其在剔除了4个看到的选牌后的序重新索引的话,上面的讨论结论是显然的。而且瞬间就可以知道,间隔为5,取24个元素,最多就是120个序的选择(因为剔除的元素刚好把序上元素值+1和下一段mod值加1对应起来了,等效于没做,甚至不用但担心mod,因为也会抵消!),再加上剩下的那4个元素,就是最多124个实际元素了。这一切,都归功于最开始那个选择哪张牌来猜的方法,sum(Ci),它天然使得上面的性质完全成立。

而编码的托的工作也很简单,只需要数出待选数是真实数值的位次,从0开始,mod5即为所求,当然因为排列编码的是1~24,这里也要再加一映射过去。

不过吧,这些内容并没有什么魔术价值,因为搞一副124张的牌实在是太奇怪了,就提升魔术神奇度来说,这个牌张的增加,奇怪大于震撼。虽然以上的推导有简便算法,编码就是直接剔除之前的选牌看位置来mod 5,而解码也是算剔除后位置索引加上0位置的mod值后,去找对应区间的位置。

不过还是太麻烦,毕竟上哪找一副124张的扑克牌去呢?

好了,《5张牌的预言》这个魔术就先讨论到这里,下面我们还会举一反三,再介绍几个用托来编码通信的案例,敬请期待!

视频抢先看!

视频2 Eigen's value

17f59276f68ab06c1be82bb6534fe0ef.gif

我们是谁:

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

41420c1747697b929ebb31e066efc033.gif

ab90ab35352db26671e050d612ddc55d.png

abf26e704039fd17e5e3c2ef2dd120f1.jpeg

扫描二维码

关注更多精彩

用排列组合来编码通信(三)——魔术《5张牌的预言》

好魔术背后的秘密

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

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

魔术缘何而给你惊喜?

b681c8537496fe262b9f386494befd76.gif

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图像识别技术在病虫害检测中的应用是一个快速发展的领域,它结合了计算机视觉和机器学习算法来自动识别和分类植物上的病虫害。以下是这一技术的一些关键步骤和组成部分: 1. **数据收集**:首先需要收集大量的植物图像数据,这些数据包括健康植物的图像以及受不同病虫害影响的植物图像。 2. **图像预处理**:对收集到的图像进行处理,以提高后续分析的准确性。这可能包括调整亮度、对比度、去噪、裁剪、缩放等。 3. **特征提取**:从图像中提取有助于识别病虫害的特征。这些特征可能包括颜色、纹理、形状、边缘等。 4. **模型训练**:使用机器学习算法(如支持向量机、随机森林、卷积神经网络等)来训练模型。训练过程中,算法会学习如何根据提取的特征来识别不同的病虫害。 5. **模型验证和测试**:在独立的测试集上验证模型的性能,以确保其准确性和泛化能力。 6. **部署和应用**:将训练好的模型部署到实际的病虫害检测系统中,可以是移动应用、网页服务或集成到智能农业设备中。 7. **实时监测**:在实际应用中,系统可以实时接收植物图像,并快速给出病虫害的检测结果。 8. **持续学习**:随着时间的推移,系统可以不断学习新的病虫害样本,以提高其识别能力。 9. **用户界面**:为了方便用户使用,通常会有一个用户友好的界面,显示检测结果,并提供进一步的指导或建议。 这项技术的优势在于它可以快速、准确地识别出病虫害,甚至在早期阶段就能发现问题,从而及时采取措施。此外,它还可以减少对化学农药的依赖,支持可持续农业发展。随着技术的不断进步,图像识别在病虫害检测中的应用将越来越广泛。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值