本文主要是介绍2024年刘谦魔术大揭秘,其中竟用到了约瑟夫环?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
前言
魔术过程
揭秘过程
结尾
前言
不知道昨天春晚时刘谦的魔术大家看了没有,相信大家跟我一样也很疑惑,所以爆肝一天我得出了结论。如果你觉得还不错的话,记得点赞收藏,分享给更多的朋友看。
魔术过程
整个魔术可以分成十步,你可以学一学变给同学看,他们一定会震惊十万年的。
1.任意选四张牌,并把牌洗混。
2.把扑克牌对折后撕开,让一堆放在另一堆上面,合并成8张牌。
3.名字有几个字就把扑克牌从上面往下挪动几张。
4.拿出最上面的三张牌,插入剩下牌的中间(位置随意)。
5.把最上面的牌拿走放在口袋里。
6.按照南北方人拿出不同的数量插入中间(南1北2不知道3)。
7.按性别分别丢弃最上面的牌(男1女2)。
8.嘴里喊出“见证奇迹的时刻”,每喊一个字,把一张牌从上面拿到最下面。
9.“好运留下来,烦恼丢出去”,当喊出“好运留下来”时,把最上面的牌拿到最底下;当喊出“烦恼丢出去”时,把最上面的牌丢出去(扔掉),重复步骤知道剩余一张牌。
10.如果你步骤正确的话,剩余的半张牌和放在口袋里的半张牌会正好拼成一张牌。
揭秘过程
我们逐个步骤来看。
1.任意选四张牌,并把牌洗混。
表面上看是每个人都不一样,很随机,但是你忽略了一点,他最终不是猜你的牌,而是让你手中的两张牌配对起来,所以再怎么打乱,人人都一样,属于障眼法。
2.把扑克牌对折后撕开,让一堆放在另一堆上面,合并成8张牌。
我们把这8张牌设为:ABCD abcd
一堆放在另一堆上面,并没有改变ABCD的顺序。
进一步观察,发现任意两张配对的牌之间都间隔3张牌。
3.名字有几个字就把扑克牌从上面往下挪动几张。
表面上看是把牌堆又弄乱了,但你仔细想一想,不管你移动多少张,两张配对的牌始终间隔3张牌。如下面的例子:
张三:ABCDabcd→CDabcdAB
王小明:ABCDabcd→DabcdABC
所以这一步属于障眼法。
4.拿出最上面的三张牌,插入剩下牌的中间(位置随意)。
这一步非常关键,观察牌堆,如果我们把上面三张插入中间,顶牌和底牌已经配对了。
张三:ABCDabcd→CDabcdAB→bCDacdAB(不管怎样插,头尾都会配对)
王小明:ABCDabcd→DabcdABC→cdDabABC
5.把最上面的牌拿走放在口袋里。
这一步把顶牌拿走,也就是说此时此刻需要配对的牌是底牌。
6.按照南北方人拿出不同的数量插入中间(南1北2不知道3)。
你插来插去,底牌还是没有变,属于障眼法。
7.按性别分别丢弃最上面的牌(男1女2)。
你丢来丢去,底牌还是没有变,属于障眼法。
8.嘴里喊出“见证奇迹的时刻”,每喊一个字,把一张牌从上面拿到最下面。
这一步需要模拟一下,因为底牌顺序完全改变了。
张三(BOY):ABCDabcd→CDabcdAB→bCDacdAB→DacdAB→acdABD
王小明(GRIL):ABCDabcd→DabcdABC→cdDabABC→abABC→ABCab
9.“好运留下来,烦恼丢出去”,当喊出“好运留下来”时,把最上面的牌拿到最底下;当喊出“烦恼丢出去”时,把最上面的牌丢出去(扔掉),重复步骤知道剩余一张牌。
重中之重,约瑟夫问题!
我们可以写一个程序来验证一下,有几张牌相当于有几个人报数,报2淘汰。
#include<bits/stdc++.h> using namespace std; int main() {int n;cin>>n;int a[n+1]={0};for(int i=1;i<=n;i++) a[i]=i; int num=n;//num为剩余人数 int count=1;//count为当前要报的数字 int tmp=0;//tmp为当前该哪个位置报数了 int l=1;//l表示当前是第几轮 while(num!=0) {tmp++;if(tmp>n) tmp=1;if(a[tmp]!=-1){if(count==2){cout<<a[tmp]<<" ";a[tmp]=-1;num--; count=0;}count++;}}return 0; }
张三:
出圈顺序:2 4 6 3 1 5
5对应字符串“acdABD”里的B。
王小明:
出圈顺序:2 4 1 5 33对应字符串“ABCab”里的C。
这一步多理解理解,魔术精髓就在这。
10.如果你步骤正确的话,剩余的半张牌和放在口袋里的半张牌会正好拼成一张牌。
神奇是神奇,但是被我揭穿了,哈哈哈。
结尾
怎么样,你学会了吗?制作不易,希望点个赞评个论再走。
我看了看写满了的草稿纸,你确定不点个关注吗?
我是爱证明的小芒果,我们下次再见,Happy Chinese New Year!
这篇关于2024年刘谦魔术大揭秘,其中竟用到了约瑟夫环?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!