这个戏法看了N遍,直观感觉是循环行列,经过一开始放牌的进程能够感触出来,代码经过循环链表完成更为简略。

本戏法的详细步骤:

准备工作

  1. 将四张牌半数后扯开,两堆顺序相同,均为2567。
  2. 同一方向堆在一起,相当于25672567。

第一部分

  1. 依据姓名从顶部往底部拿牌。
  2. 将顶部三张刺进剩余扑克牌中心方位,不能够放到结尾(即最终一张牌之后)。
  3. 拿起顶部第一张牌,放好。
  4. 自己是南方人拿起一张,北方人拿起两张,不确定南北方则拿起三张,均刺进牌的中心方位。

第二部分

  1. 男生从上面拿起一张,女生从上面拿起两张,丢掉。
  2. 见证奇观的时间,7个字,自顶部移动到牌尾7次。
  3. 好运留下来,烦恼丢出去:顶部移至结尾,丢出顶部,重复迭代。
  4. 男生再迭代一次。

循环行列分步详解

准备工作

2024春晚刘谦撕纸牌戏法背面的算法剖析

第一部分

组成循环行列

2024春晚刘谦撕纸牌戏法背面的算法剖析

依据姓名从顶部往底部拿牌,确立队首

2024春晚刘谦撕纸牌戏法背面的算法剖析

把顶部三张牌刺进中心,首尾相同

只要是中心方位即可

2024春晚刘谦撕纸牌戏法背面的算法剖析

拿出第一张牌即当前队首,新行列,原方方位空

2024春晚刘谦撕纸牌戏法背面的算法剖析

南北方人将顶部一至三张牌移至底部

2024春晚刘谦撕纸牌戏法背面的算法剖析

第二部分

男生从上面拿起一张,女生从上面拿起两张,丢掉,置空为N。

2024春晚刘谦撕纸牌戏法背面的算法剖析

见证奇观的时间,移动7次指针

2024春晚刘谦撕纸牌戏法背面的算法剖析

好运留下来,烦恼丢出去:顶部移至结尾,丢出顶部,重复迭代

1

2024春晚刘谦撕纸牌戏法背面的算法剖析
2

2024春晚刘谦撕纸牌戏法背面的算法剖析
3

2024春晚刘谦撕纸牌戏法背面的算法剖析
4

2024春晚刘谦撕纸牌戏法背面的算法剖析
男生剩余两张,女生剩余一张,男生再次迭代

2024春晚刘谦撕纸牌戏法背面的算法剖析
至此结束。

4张牌,扯开变八张,按姓名字数移动,循环行列顺序并没有变,虚操作。

起初相同两张之间隔着3张牌,将三张刺进中心之后,有两张相同的牌变为相邻的,拿出其间一张,剩余7张。

南北方人移动的操作并不会影响最终一张(即队尾)的牌,虚操作。

男女生这儿真正开始迭代。

男生扔一张,剩余6张;女生扔两张,剩余5张。

见证奇观的时间为7个字,7除以6余1,7除以5余2,相当于别离向前移动了1位和2位,现在移动7个方位是为了一起移动偶数位。

剩余的步骤本质参考:约瑟夫环经典数学、计算机问题。