Si Stebbins Stack中的数学与魔术(四)——如何快速得到一个Si Stebbins Stack

在本系列前两篇文章中,我们着重介绍了Si Stebbins Stack的数学结构和存在性证明,相关内容请戳:

Si Stebbins Stack中的数学与魔术(三)——序列存在性证明完结

Si Stebbins Stack中的数学与魔术(二)——序列模型选择及存在性证明

Si Stebbins Stack中的数学与魔术(一)——序列基本介绍

从今天开始我们就当它的存在是显然的,不再考虑这个问题了。今天打算讲一个实操的问题:这个序列,该如何快速地构造出来呢?

Si Stebbins Stack构造思路分析

 

在《如何优雅地给扑克牌排序?(二)——排序算法的一次工程实践》一文中,我们曾经尝试过去结合桶排序算法的原理和思路去设计一个在手上执行的流程,来完成扑克牌的出厂序。根据排列群的原理,无论是出厂牌序,还是Si Stebbins序或其他,都只是一种特定排列而已,且满足全序关系,只不过大小排序刚好比较特殊,物理意义相对明确罢了,但这却完全不妨碍这种结构有很多别的形式。

 

这里的序列构造也是类似的方案,如果人像计算机一样,对不同花色点数扑克牌的识别能力相同,那直接把原来的方案迁移过来就好了,只不过要多一层映射。比如因为公差为3的关系,数字部分123,对应的是147,456是10k3等等,而花色则完全没了原来连续排布的规律,而是一种周期性下的硬规则了。这对于人脑来说判断和记忆就太困难了,这不是人脑本身的精华计算资源善于做的事。因此,我们需要找更好的人来执行的方案。

Si Stebbins Stack构造基本方案

 

其实,这里关于花色和点数模等差数列的特性,也是周期特性,很容易想到能否先把同花色的分开,各自按照A~K的排列来依次获取,这样花色的周期就保证好了,只需要构造点数的。比如先把扑克牌排成4叠花色分开,数字倒序排好,然后通过切牌使得起始牌分别为方块A,梅花4,红心7,黑桃10。

 

结果刚刚好,下一个需要的方块K刚好是第一叠的下一张,原因也很简单,3 * 4 == - 1(mod 13),因此,倒序的序列刚好提供了单个花色的递减1的序列。这里是因为数值公差为3,花色周期是4,点数周期是13,这样刚好凑上,差一点可能这个方法就不再成立,需要另行设计。当然,这里排列一个倒序序列的难度对人类已经是最友好的了,比排一个公差为2,3,4的循环同花序列强多了。

 

同理,我们也可以把同点数的整理起来,按照等差顺序排好,并且花色也依次用切牌方式配好一个周期并且相位正确,一共13组,这样,由于13 == 1(mod4),刚好花色按照递增1的序列排列,也可以达到相应的效果。但是,这里需要整理13叠牌,以及按照公差3排序,每个花色的相位还需要完全正确,这已经比前者要复杂得多而直接淘汰了。

 

于是从我开始用这个序列变魔术到大概几个月前,我都是用的这种方法,不算快,够用而已。

Si Stebbins Stack快速构造方案

 

那掌握了内部性质以后,以及更多我手上能操作的手法以后,有没有更加快的方式呢?

 

于是我想到了完美洗牌。

 

而且逆向思维来走:假设一次完美洗牌得到了Si Stebbins序列,那原两个子序列是多少?

 

执行反完美洗就可以了。

 

这时候你会看到,生成的两个序列,颜色完全分离了,序列内部看起来规律也十分清楚了。

 

再对两个子序列反完美洗一次,就得到了4个花色各自的倒序序列二切牌的循环群中的序列了。

 

因此,怎么去得到我们要的Si Stebbins序列,不就很简单了吗?

 

  1. 把扑克牌按花色分开后,倒序排列;

  2. 通过二切牌,把每叠牌的第一张切成方块A,梅花4,红心7,黑桃10;

  3. 把方块红心两叠以及梅花黑桃两叠,通过out faro洗牌洗到一起;

  4. 再把洗出来的两叠继续out faro洗牌到一起,即完成Si Stebbins序列。

其实从基本方案到这个完美洗牌的方案是很自然的,因为原方案其实就是一次手工操作的4阶的逆依次发牌,依次发牌我们知道就是反完美洗牌的变体,那逆过来本身就是完美洗牌了。而4阶刚好可以分解为两个2阶,也就是标准完美洗牌,才完整地和我们的操作对应上了。

值得一提的是,这些构造方法的实现,都依赖与3 * 4 = - 1(mod 13)的成立,也就是和13的牌数字张数以及4的花色周期,3的递增周期都有着密不可分的关系,换掉任何一个,都有可能要换方法,甚至找不出方法,甚至Si Stebbins Stack都会不存在。

所以我们有数学思维的人,总是会多去想想为什么,而不是说看到事情存在了,就认为合理了就结束了。拿来主义固然有实践意义,而探究真理,建模原理的过程,是艺术。

 

以上就是我关于怎么用简单的扑克手法去构建Si Stebbins序列的相关研究,如果有更好的方法,欢迎告诉我。

 

好了,包括本篇在内的这4篇文章就是Si Stebbins序列数学部分的剖析。当然还有些比较基础的比如本身含有一些等差数列等性质,这里就不都展开了,接下来我们在具体的魔术中,可以找到更多的应用来再提到,欢迎继续关注,魔术部分,即将开始!

老规矩,放几个后续将讲解的魔术视频:

视频1 Human Lie Detector

视频2 Birthday Card

视频3 shuffled divination & poker deal & Perfect Ritual

我们是谁:

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

扫描二维码

关注更多精彩

Si Stebbins Stack中的数学与魔术(三)——序列存在性证明完结

如果道具不能检查,那就毁了它!(二)——一般道具篇

利息浅谈(七)——万物皆投资

约瑟夫问题与魔术(十)——魔术《完全控制》

每一个魔术,都应该是一场直播的微电影!

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值