当前位置: 首页 > news >正文

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 3

3对应字符串“ABCab”里的C。

这一步多理解理解,魔术精髓就在这。

10.如果你步骤正确的话,剩余的半张牌和放在口袋里的半张牌会正好拼成一张牌。

神奇是神奇,但是被我揭穿了,哈哈哈。

结尾

怎么样,你学会了吗?制作不易,希望点个赞评个论再走。

我看了看写满了的草稿纸,你确定不点个关注吗?

我是爱证明的小芒果,我们下次再见,Happy Chinese New Year!

http://www.lryc.cn/news/297400.html

相关文章:

  • openssl3.2 - update debian12‘s default openssl to openssl3.2
  • VUE2和VUE3区别对比一览
  • Linux - updatedb 命令
  • 云计算市场分析
  • 前端JavaScript篇之call() 和 apply() 的区别?
  • Java设计模式大全:23种常见的设计模式详解(三)
  • 汇编语言程序设计(二)十六位汇编框架、子程序与堆栈
  • K8S之标签的介绍和使用
  • 网络请求库axios
  • 程序设计语言的组成
  • 论文精读的markdown模板——以及用obsidian阅读网页资料做笔记
  • LCP 30. 魔塔游戏
  • RCE(命令执行)知识点总结最详细
  • [英语学习][27][Word Power Made Easy]的精读与翻译优化
  • Jupyter Notebook如何在E盘打开
  • 显示器校准软件:BetterDisplay Pro for Mac v2.0.11激活版下载
  • 【第六天】c++虚函数多态
  • CGAL::2D Arrangements-3
  • 机器学习--K近邻算法,以及python中通过Scikit-learn库实现K近邻算法API使用技巧
  • Redis 使用 RDB 持久化方式的过程
  • 仰暮计划|“我非常感谢党的领导,作为一名普通百姓,我也愿意为国家的发展继续贡献微薄的力量”
  • 【思科ssh】思科模拟器配置ssh登录
  • python创建pdf文件
  • ubuntu开机报错/dev/nume0n1p2:clean
  • openstack(T版)公有云--Dashboard服务
  • Vue ElementUI中el-table表格嵌套样式问题
  • ssm+vue的校园一卡通密钥管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。
  • docker进阶 问题1
  • 【OpenVINO™】在 MacOS 上使用 OpenVINO™ C# API 部署 Yolov5 (下篇)
  • 使用CHATGPT进行论文写作的缺点和风险