这个戏法看了N遍,直观感觉是循环行列,经过一开始放牌的进程能够感触出来,代码经过循环链表完成更为简略。
本戏法的详细步骤:
准备工作
- 将四张牌半数后扯开,两堆顺序相同,均为2567。
- 同一方向堆在一起,相当于25672567。
第一部分
- 依据姓名从顶部往底部拿牌。
- 将顶部三张刺进剩余扑克牌中心方位,不能够放到结尾(即最终一张牌之后)。
- 拿起顶部第一张牌,放好。
- 自己是南方人拿起一张,北方人拿起两张,不确定南北方则拿起三张,均刺进牌的中心方位。
第二部分
- 男生从上面拿起一张,女生从上面拿起两张,丢掉。
- 见证奇观的时间,7个字,自顶部移动到牌尾7次。
- 好运留下来,烦恼丢出去:顶部移至结尾,丢出顶部,重复迭代。
- 男生再迭代一次。
循环行列分步详解
准备工作
第一部分
组成循环行列
依据姓名从顶部往底部拿牌,确立队首
把顶部三张牌刺进中心,首尾相同
只要是中心方位即可
拿出第一张牌即当前队首,新行列,原方方位空
南北方人将顶部一至三张牌移至底部
第二部分
男生从上面拿起一张,女生从上面拿起两张,丢掉,置空为N。
见证奇观的时间,移动7次指针
好运留下来,烦恼丢出去:顶部移至结尾,丢出顶部,重复迭代
1 2
3
4
男生剩余两张,女生剩余一张,男生再次迭代
至此结束。
4张牌,扯开变八张,按姓名字数移动,循环行列顺序并没有变,虚操作。
起初相同两张之间隔着3张牌,将三张刺进中心之后,有两张相同的牌变为相邻的,拿出其间一张,剩余7张。
南北方人移动的操作并不会影响最终一张(即队尾)的牌,虚操作。
男女生这儿真正开始迭代。
男生扔一张,剩余6张;女生扔两张,剩余5张。
见证奇观的时间为7个字,7除以6余1,7除以5余2,相当于别离向前移动了1位和2位,现在移动7个方位是为了一起移动偶数位。
剩余的步骤本质参考:约瑟夫环经典数学、计算机问题。