刘谦,世界著名魔术师,1976年6月25日出生于台湾省高雄市,祖籍江西省九江市,魔术师,毕业于台湾东吴大学。
现场演出遍布世界30多个国家200多个城市,并多次受邀至世界各地的国际性的魔术师大会担任演出嘉宾及专题讲座的讲师。
2024年春晚给我们表演了一个洗牌算法有关的魔术 《守岁共此时》 ,今天我们先以上帝视角模拟一下,具体步骤:
- 第1步:四张牌,对折后撕开,此时8张牌的位置为:四张一组,然后相同的四张第二组;
- 第2步:把最顶上和名字字数相同的牌数放到最下面,普通人放 2~4 张,具体放几张其实不重要,因为不会改变牌的相对顺序,不妨假定此时 8 张牌按照顺序分别是: ABCsABCs
;
- 第3步:拿出3张牌插进去,此时顺序变成:s******s
;(*为未知)
- 第4步:藏牌,藏了s
。
- 第5步:南北方人根据不同属性,从牌顶向中间插入 1~3 张牌,这个步骤不重要,只要保证最末的一张没动就行,此时牌面变成:*******s
- 第6步:男生丢1张,女生丢2张;此时假设男生手里是:BCSEFs
,女生:CDEFs
(这里的 B~F 都是未知)。这里有一个小彩蛋:如果你是第 3 种性别,丢 3 张牌,或者你是无性别人,一张牌都不丢,魔术亦可成立!这是一个「约瑟夫问题」的特殊形式,关键是第 7 步移动的是 7 张牌。
- 第7步:「见证奇迹的时刻」,从牌顶往底部放 7 张牌:
- 男生:CDEFsB
- 女生:EFsCD
- 第8步:留一张放到最下面,然后丢一张。往复循环:
- 1、男生EFsBC
,女生 sCDE
- 2、男生sBCE
,女生 DEs
- 3、男生CEs
,女生 sD
- 4、男生sC
,女生 s
- 5、男生s
- 于是我们发现藏的牌永远在奇数位,永远是留的,证毕!
所以我们发现,如果操作失误,那就不对劲了,比如小尼:
所以只要我们算法学得好,人人都是魔术师,请你编写程序把这个魔术复现一下吧!
为保证判题方便和准确,所有插入中间均视为向下取整插在最中间。