关于洗牌的研究(六)——从数学到魔术之完美洗牌

爱学习,勤思考;学数学,玩魔术。欢迎点击头部蓝字关注MatheMagician,这里有你要的奇迹!

 

写再前面:本系列作品由MathMagician独家首发,一共有七篇,从数学和魔术两个角度对日常生活中“洗牌”这一现象作了挂一漏万的分析。之所以说是挂一漏万,是因为无论数学还是魔术,洗牌中的任何一个小点都够写几篇了。所以,本系列主要选取了一些常见的洗牌方式和相关内容展开作了一些介绍,包括洗牌分类,混乱度评价,过程建模,近似计算,以及几个基本但是及其巧妙的利用洗牌规律设计的魔术。相信聪明的你读完以后,会在数学和魔术上,都对“洗牌”这一现象有着更加深入的认识。

 

历史文章请戳:

关于洗牌的研究(五)——从数学到魔术之印度洗牌

关于洗牌的研究(四)——洗牌混乱度计算

关于洗牌的研究(三)——洗牌过程建模

关于洗牌的研究(二)——你的扑克洗乱了吗?

关于洗牌的研究(一)——平常你都是怎么洗牌的?

 

本篇是第六篇:从数学到魔术之完美洗牌

 

到这一篇,我们来看看完美洗牌这一效果,在完美精确的特性下,能发挥出怎样的魔力。

 

回顾一下完美洗牌的过程,它是一种特殊的交叉洗牌,有Out Faro Shuffle和In Faro Shuffle两种,对于每张牌的位置变化,首先考察其是否在前半叠,不在则减去牌叠一半数量。剩下的操作要么就是乘以2,或者再加1。

 

重点来了。

 

这个操作在二进制的世界里十分完美,这恰好是个左移位操作,只是移入的数据是0和1的区别,取决于out/in faro还是在不在上半叠,其中out faro和上半叠牌相当于左移1位补0,改变成in faro或下半叠则补1,二者都改则仍然补0:

 

k << 1 + 1 if in faro xor k >= N /2

k << 1 if not (in faro xor k >= N/ 2)

 

天哪,扑克牌上的完美洗牌居然对应计算机的移位操作,而在二进制的计算机底层,有大量移位操作的优化来加速运算,这一切竟然正好和一个扑克魔术手法对应!

 

还有一点,这里关于移位进入的数是1还是0的逻辑,其实是一个类似于Z2群的数学结构,或者也可以用亦或(xor)和同或(exor)这样的逻辑运算来直接表达,甚至直接当成一个不进位的加法来理解。

 

另外,这里牌的计数顺序(从顶部往底部数还是反过来)不影响是否是一个out/in faro,可见计数顺序仅仅是对完美洗牌性质的一种描述,并不影响其本身。

 

那这些特性里有哪些可以用于魔术呢?

 

1. 完美洗牌仅仅是一次固定的排列变换流程而已,它在观众眼里可以是一次不完美的正常洗牌,这个差别就是产生魔术效果的点。但这样一次精密的移动能设计的效果其实是非常数学化而且难以表演的。必须加以转化。

 

2. 多次完整的完美洗牌有一定的手法困难,但是做到魔术效果并不要求每次都绝对完美,只要能完成魔术效果即可,比如只要一个局部等(之前reverse操作也有变种,只需要顶牌恢复就可以了)。

 

3. 完美洗牌对扑克牌位置的改变方式是计算机上的移位操作,这是极其数学化的,为设计魔术带来了机会又有挑战。但是这给把任意扑克牌移动到任意位置都提供了可能,所以又是极富想象空间的。

 

4. 上述移位操作是批量进行的,所以没超过半幅位置的牌若干次洗牌以后都会得到同余的性质,余数取决于in / out faro的具体实施顺序,这样一来,就可以用同余性质做些文章了。

 

这些特性都是理论上的,要真的变成魔术还不那么容易,经过和朋友们的讨论和自己思考,筛选,以下作品供大家欣赏。

 

完美三明治

 

一开始真的为这太数学化的操作改编成魔术而头疼,不过感谢一位魔术朋友给我提供的点子,让我眼前一亮,加以练习以后完成了第一个完美洗牌的作品。

 

视频1 完美三明治

 

这个作品没有过渡依赖完美洗牌的效果,用上了加减恒等关系使得精密的数学关系在自由选择下生效,而完美洗牌只不过把这一效果以三明治的魔术形式展现出来罢了。这是我目前看到完美洗牌相关魔术里,比较适合表演的一个了。综合表演难度和惊喜程度,这是一个相当不错的结合了数学和魔术相互优势的作品了。

 

如果做不到绝对完美,这里也只需要保证在靠近底或者顶部的前若干张保持完美就好了,这也取决于观众停牌的多少(不能超过26张)是分叠一定要检查完全相同,这是效果成立的基础。

 

数学原理剖析如下:

 

(嫌烦的可以跳过啦,在前文《加加减减的奥秘——从数学到魔术的思考(一)》系列文章中,早就介绍过相关原理了,这里大同小异。)

 

对于一副2n张的扑克牌,编号0~(2n - 1)其中鬼牌定位于(n - 1)和(n - 2)张位置,发牌m张使得位置到(n - m - 1)和(n - m - 2),那么当选牌位于底部(2n - 1)张时候,也变成了(2n - m - 1),注意m <= n - 2,这样不会改变一对鬼牌和选牌所在牌叠一上一下,此时,在in faro下恰好鬼牌位置变为{2(n - m - 1) + 1,2(n - m - 2) + 1} = {2(n - m) - 1, 2(n - m) - 3}选牌变成了2(2n - m- 1 - n) = 2(n - m) - 2,这恰好位于两个鬼牌之间构成sandwich效果。

 

感谢朋友给我提到的这个好点子。交流创造价值。

 

当然,由于完美洗牌的交叉特性,完全可以把该流程扩展成一个Collector流程,这个就留给同学们自己设计了,我相信效果一定能比这个还爆炸!

 

洗牌把格拉斯效果

 

江湖上传闻的巴格拉斯效果有各种各样的变种,利用完美洗牌这么硬核的方法做到实在是不容易,这个想法很早在英国女王学院提出完美洗牌的二进制效应以后就自然产生了,无奈流程太过繁琐,而且极其容易失误,所以绞尽脑汁,完整的作品才在近日想到来分享给大家。

 

视频2 洗牌巴格拉斯效果

 

巴格拉斯是每个魔术朋友梦寐以求的效果,但是完美的效果总是遥不可及,我尝试着把完美洗牌在移动牌上的规律利用好,尽量做到最佳效果。

 

我们要做的事情是,通过移位操作,把指定的牌移动到指定的位置。指定的牌可以很容易通过手法控制在顶部底部(0位置),接下来的设计就极其精妙了。

 

按道理,将位置为0的首牌移动到指定0~53的位置可能需要6次洗牌,因为只要不小于32,就是一个6位的二进制数。这对于魔术表演来说显然太多了,是一个理论可行但是表演会很糟糕的流程。于是,我进行了两方面的关键改造:

 

1. 位置为0~26从顶部开始洗,位置为27~53从底部开始洗,用53减去以后有恢复了0~26的范围,这样最多是一个5位二进制数。通过数牌怎么都合理的方向,减少了一次洗牌(记得Kiko在讲座中提到过,最好正面向上给观众数,这样翻过来数就很合理了,而不翻同样也合理,翻过来则很糟糕,真是觉得每个细节都是戏啊!)。

 

2. 我们是通过二进制移位操作达成这个值的,所以值的变化是成倍的,位置大范围的变化在最后两次,因此最开始的0~7的前三比特完全可以直接用手法数过去,控顶或者控底以后补对应张数即可,这样只剩下最后的2个比特位了,仅需要两次完美洗牌即可做到!

 

当然,如果转化后的数比16还小那就可以进一步减少完美洗牌次数,减少失误了。另外,这里也并不要求真的完美切分和交叉,只要到控制那一张为止不错,达到正确加倍加一的效果就够了,所以一般从那边数,完美洗牌就从哪边开始,这样后面是允许误差存在的。

 

而表演上,它在观众说完数字以后需要动扑克牌,这是一个说不清的天然劣势,需要用巧妙的语言让切牌,洗牌变得合理,最后的结果才看起来神奇,要靠魔术师的功力去引导了。

 

这绝对是一个硬核魔术,表演得当将产生完全超现实的效果。

 

后来,朋友还提到过利用前6张的选择加3次out faro shuffle把选牌控制在整除位置来知晓观众的牌,但也免不了要多次询问,尚且不如一些魔术手法来得干脆,这里就暂时没有表演了,同学们可以想想这个原理可以怎么设计更好。

 

到此,我能想到完美洗牌相关的魔术设计就这些了,你如果有新的想法,欢迎留言交流。

 

总之完美洗牌是一个在扑克牌上可以执行的干净的数学操作,其操作内容实质相对隐秘,如何里用它变成魔术,就靠我们的创造力了,这也是魔术设计之美。

 

还剩最后一篇讲交叉洗牌相关的魔术,敬请期待!


好了,今天的数学魔术师的分享就到这里,希望各位客官能够喜欢!这里是MatheMagician,有你要的奇迹!

 

再次感谢各位客官的欣赏,MatheMagician期待您的赞赏哦~

 

更多精彩内容欢迎扫描下方二维码或点击头部公众号名MatheMagician关注我们,更欢迎把我们的精彩内容奔走相告,我们下期再见!

640?wx_fmt=jpeg

我们是谁:

MatheMagician,中文“数学魔术师”,是一个十分冷门的职业,原指用喜欢用数学原理设计魔术的魔术师或数学家。但由于数学太过艰深,变成魔术又表演困难,所以这个领域的专业研究者及其罕见。但其实,魔术设计只是数学建模的一个别致的场景;而魔术本身也蕴含着数学之外的诸如心理学,行为科学等其他广阔的议题。我们文章分享的内容涵盖统计,算法,NLP等前沿的数学及应用领域;也包括魔术思想,流程解析,鉴赏等关于魔术的思考;还有大量直接结合二者设计的数学魔术的分享。如果你对数学或者魔术感兴趣,或者喜欢思考和有内涵的文字,我们的内容一定能成为你学习成长的好伙伴!欢迎在文末或公众号留言与我交流!

推荐阅读:

关于洗牌的研究(五)——从数学到魔术之印度洗牌

关于洗牌的研究(四)——洗牌混乱度计算

关于洗牌的研究(三)——洗牌过程建模

关于洗牌的研究(二)——你的扑克洗乱了吗?

关于洗牌的研究(一)——平常你都是怎么洗牌的?

你喷刘谦的样子,就是你最真实的内心

如何优雅地给扑克牌排序?(二)——排序算法的一次工程实践

刘谦的绝地反击,就像勒布朗去年单核进总决赛!

如何优雅地给扑克牌排序?(一)——排序算法的数学本质

刘谦春晚揭秘到回应——媒体正怎样影响我们这个时代?

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值