春晚刘谦第二个魔术原理讲解

2024-02-10 09:20

本文主要是介绍春晚刘谦第二个魔术原理讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 1. 先说一下步骤:
  • 2. 原理讲解:
      • 2.1 第一步分析
      • 2.1 第二步分析
      • 2.1 第三步分析
      • 2.1 第四步分析
      • 2.1 第五步分析
      • 2.1 第六步分析
      • 2.1 第七步分析
      • 2.1 第八步分析
      • 2.1 第七步重新分析
  • 小结:

在这里插入图片描述

首先,先叠个甲。我本人很喜欢刘谦老师,初中的时候非常喜欢看刘谦老师的魔术,刘谦老师的魔术至今没有被解密的非常多,都是老师精心准备的。

这次春晚刘谦老师能上也是非常开心。想起以前看春晚,一看完刘谦老师的魔术,被吃惊到后,就急忙去看其他网友的激烈讨论。当然有的解密任然

第二个魔术并不难,是刘谦老师专门为观众准备的互动魔术,既然是面向全国观众的,观众自己上手的,原理呢自然观众是可以推理出来的。所以刘谦老师的设计必然是迎合观众的推理心理的,这个魔术是专门留给观众破解的。

1. 先说一下步骤:

第一步:拿四张牌、打乱,撕成两半,堆叠到一块
【牌数 = 8】

第二步:按名字字数依次把上面的放到下面

第三步:把上面的三张牌插入剩下的牌中间(只要中间就行)

第四步:最上面的一张牌拿出来,用于最后对比
【牌数 = 7】

第五步:如果是南方人,拿最上面1张;北方人2张;不清楚南北3张。放入剩余牌中间

第六步:男生扔掉最上面1张牌;女生扔掉最上面2张牌
【牌数 = 6 or 5】

第七步:“见证奇迹的时刻”,7次逐字,把最上面的牌放到最下面

第八步:“好运留下来,烦恼丢出去”,最上面的一个牌放到最下面,再扔一个。无限循环到剩下最后一个。这最后一个就是要找的能匹配到的牌。
【牌数 = 1】

2. 原理讲解:

我们逐步拆解:

2.1 第一步分析

我们不妨把第一步得到的结果列为如下(字母一样的表示为同一张牌,数字表示为分别两半):

A1
B1
C1
D1
A2
B2
C2
D2

2.1 第二步分析

先想一个问题:第二步真的起到作用了吗?当然是没有的。

为什么这么说呢,因为原本的第一步得到的排列顺序就是配对的两张牌间隔3张牌,也就是第二张牌在第一张牌的往下数第四号位。就算第二步执行了多少张牌,依旧是第二张牌在第一张牌的往下数第四号位。

比如移动3个:

D1
A2
B2
C2
D2
A1
B1
C1

毕竟名字的长度的区间可是[2, +∞)

所以,我们把字母变回ABCD的顺序,任然可以把结果表示为:

A1
B1
C1
D1
A2
B2
C2
D2

2.1 第三步分析

第三步是固定步骤,我们先把上面三张牌取下来,这时候魔术的目的就达成了,达成了什么呢?达成了D1在最上面,D2在最下面;至于上面三张牌插哪就无所谓了:

D1
A2
B2
C2
D2

2.1 第四步分析

最上面的一张牌拿出来,不如叫:最D1拿出来得了。

这时候我们反向思维,我们做完8步后最后剩下的牌一定是D2

2.1 第五步分析

所以,这里南北就不重要了,因为D2还是一定在最下面

2.1 第六步分析

这里也不重要了,因为D2还是一定在最下面

2.1 第七步分析

第七步和第八步是连起来的,我们先分析第八步

2.1 第八步分析

我们要保持我们的牌是个环形排序结构的思维,所以移动不移动都一样:
第八步简化后就等于:留一个扔一个到最后一个

这里还剩下 6 or 5 张牌是吧,我们模拟一下过程,一步一步得到最终结果:

6张牌

牌1
牌2
牌3
牌4
牌5
牌6

留一删一,这里牌1被留下,牌2被删除

牌1
牌2
牌3
牌4
牌5
牌6

以此类推,下面是一步一步得到最终结果:

牌1
牌2
牌3
牌4
牌5
牌6

牌1
牌2
牌3
牌4
牌5
牌6

牌1
牌2
牌3
牌4
牌5
牌6

牌1
牌2
牌3
牌4
牌5
牌6

5张牌

牌1
牌2
牌3
牌4
牌5

牌1
牌2
牌3
牌4
牌5

牌1
牌2
牌3
牌4
牌5

牌1
牌2
牌3
牌4
牌5

2.1 第七步重新分析

我们整理两种情况得到的最终结果:
6张牌

牌1
牌2
牌3
牌4
牌5
牌6

5张牌

牌1
牌2
牌3
牌4
牌5

所以,这里 6张牌情况中的牌5 = D25张牌情况中的牌3 = D2 。因为我们知道在第六步最后D2是在最底下,所以,我们倒回去把最下面的牌放到最上面7次后,6张牌情况中的牌55张牌情况中的牌3 都会回到最下面!!!

小结:

关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解||
由于本号流量还不足以发表推广,搜我的公众号即可:
在这里插入图片描述

这篇关于春晚刘谦第二个魔术原理讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/696730

相关文章

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Spring Boot循环依赖原理、解决方案与最佳实践(全解析)

《SpringBoot循环依赖原理、解决方案与最佳实践(全解析)》循环依赖指两个或多个Bean相互直接或间接引用,形成闭环依赖关系,:本文主要介绍SpringBoot循环依赖原理、解决方案与最... 目录一、循环依赖的本质与危害1.1 什么是循环依赖?1.2 核心危害二、Spring的三级缓存机制2.1 三

C#中async await异步关键字用法和异步的底层原理全解析

《C#中asyncawait异步关键字用法和异步的底层原理全解析》:本文主要介绍C#中asyncawait异步关键字用法和异步的底层原理全解析,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录C#异步编程一、异步编程基础二、异步方法的工作原理三、代码示例四、编译后的底层实现五、总结C#异步编程

Python中的魔术方法__new__详解

《Python中的魔术方法__new__详解》:本文主要介绍Python中的魔术方法__new__的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、核心意义与机制1.1 构造过程原理1.2 与 __init__ 对比二、核心功能解析2.1 核心能力2.2

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.