刘谦魔术我用代码还原了,魔术尽头是数学,数学尽头是神学!

刘谦在春晚让两个半张扑克牌合在一起的时候,我就知道其中必然有数学的奥妙。

假设我们初始卡牌为1,2,3,4。对半撕开后我们定义扑克牌为:

1(1) 2(1) 3(1) 4(1) 
1(2) 2(2) 3(2) 4(2)

按照刘谦的魔术,你需要把所有牌叠到一起,你可以选择把(2)压到(1)上,或者把(1)压到(2)上,这里洪爵选择把(1)压到(2)上,现在的卡牌顺序为:

1(1) 2(1) 3(1) 4(1) 1(2) 2(2) 3(2) 4(2) 

现在放上面3张到中间

4(1) 1(1) 2(1) 3(1) 1(2) 2(2) 3(2) 4(2) 

然后藏起来最上面那张,所以这个步骤之后,无论你之前选择怎么压,藏起来的要么是4(1)要么是4(2)。洪爵这里藏起来的是4(1)

藏起来: 4(1)
1(1) 2(1) 3(1) 1(2) 2(2) 3(2) 4(2) 

接下来刘谦魔术需要自问自己是南方人还是北方人,南方人把最上面1张牌放中间,北方人放2张,不知道的放3张hh。这一步其实没有什么所谓,因为我们需要的牌依然在最后一张,前面的牌都是要扔掉的,所以无关顺序,这个南北方人相当于迷惑我们的操作。

这个时候比较精彩的是,对于男女生来说,扔掉的卡牌的数量不一样,女生扔掉2张,男生扔掉一张,那么我们可以表示为:

男神们 x x x x x 4(2)
女神们 x x x x 4(2)

男生还剩下6张牌,女生剩下5张牌。

男生需要的牌4(2)在偶数位,女生的在奇数位置。

那么 见证奇迹的时刻,需要7次把最上面的牌放到最下面,真的见证时刻了,

男神们 x x x x 4(2) x
女神们 x x 4(2) x x

男生和女生所需要的牌都在奇数位置,接下面就是保留好运,丢掉霉运,保留的是奇数,扔掉的是偶数

只要确保4(2)在最后一轮被留下来即可。

最后…尼格买提hhh,小表情太到位了。

这里附上洪爵手敲的源码:


public class Main {
    public static void main(String[] args) {

        List<Integer> originCards = Arrays.asList(1, 2, 3, 4);

        System.out.print("-----初始卡牌:----- ");
        for (Integer originCard : originCards) {
            System.out.print(originCard + " ");
        }
        System.out.println();

        System.out.println("-----对撕一半后现在的卡牌为:-----");
        List<String> cardPart1 = new ArrayList<>();
        originCards.forEach(originCard -> cardPart1.add(originCard + "(1)"));
        List<String> cardPart2 = new ArrayList<>();
        originCards.forEach(originCard -> cardPart2.add(originCard + "(2)"));
        cardPart1.forEach(card -> System.out.print(card + " "));
        System.out.println();
        cardPart2.forEach(card -> System.out.print(card + " "));
        System.out.println();
        System.out.println("-----请问您发财的小手是想把(1)放在上面, 还是(2)放在上面?(输入1或2)");
        Scanner in = new Scanner(System.in);

        int position = in.nextInt();
        Deque<String> deque = new LinkedList<>();
        if (position == 1) {
            deque.addAll(cardPart1);
            deque.addAll(cardPart2);
        } else if (position == 2) {
            deque.addAll(cardPart2);
            deque.addAll(cardPart1);
        } else {
            System.out.println("不符合预期");
            return;
        }
        System.out.println("您的卡牌从上到下顺序为:");
        deque.forEach(card -> System.out.print(card + " "));
        System.out.println();
        System.out.println("现在放3张到中间");
        String card2 = deque.removeLast();
        for (int i = 0; i < 3; i ++) {
            String card1 = deque.removeFirst();
            deque.addLast(card1);
        }
        deque.addLast(card2);
        System.out.println("您的卡牌从上到下顺序为:");
        deque.forEach(card -> System.out.print(card + " "));
        System.out.println();
        System.out.println("您现在要把第一张, 即" + deque.removeFirst() + "藏起来");
        System.out.println("您的卡牌从上到下顺序为:");
        deque.forEach(card -> System.out.print(card + " "));
        System.out.println();
        System.out.println("您的另一半卡牌一直在最后一个位置没有变化");

        System.out.println("您是北方人输入2(放2张到中间)还是南方人输入1(放1张到中间), 不确定输入3(放3张到中间)");
        int region = in.nextInt();
        card2 = deque.removeLast();
        for (int i = 0; i < region; i ++) {
            String card1 = deque.removeFirst();
            deque.addLast(card1);
        }
        deque.addLast(card2);
        System.out.println("您的卡牌当前从上到下顺序为:");
        deque.forEach(card -> System.out.print(card + " "));
        System.out.println();
        System.out.println("您的另一半卡牌一直在最后一个位置没有变化");

        System.out.println("您是女神 输入2(从上到下扔2张), 还是男神 输入1(从上到下扔1张)?");
        int gold = in.nextInt();
        for (int i = 0; i < gold; i++) {
            deque.removeFirst();
        }

        System.out.println("您的卡牌当前从上到下顺序为:");
        deque.forEach(card -> System.out.print(card + " "));
        System.out.println();

        System.out.println("现在连续放7张牌到底下");
        for (int i = 0; i < 7; i++) {
            deque.add(deque.removeFirst());
        }

        System.out.println("您的卡牌当前从上到下顺序为:");
        deque.forEach(card -> System.out.print(card + " "));
        System.out.println();

        System.out.println("现在才是最关键的步骤, 我们可以发现我们的另一张牌一直在奇数位置");
        System.out.println("男生扔掉1张剩下6张 移动7次变奇数 女生剩下5张 移动7次依然奇数不变");
        System.out.println("只要确保需要的牌在最后一轮被留下来即可");
    }
}

【b站和微信都可搜Knight洪爵,求求关注捏,干货多多】
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/381523.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

揭秘企业内团队协作的隐形障碍

企业内团队协作是现代企业中不可避免的一部分。然而在团队协作中&#xff0c;总是会存在一些障碍&#xff0c;这也是企业内团队协作面临的一些挑战。这些障碍会对企业的效率、生产力和团队士气产生影响&#xff0c;因此一定要在团队合作中积极地寻找和消除这些障碍。 一、缺乏透…

华为配置交换机KPI信息上报分析器示例组网图形

配置交换机KPI信息上报分析器示例 组网图形 图1 KPI信息上报拓扑图 组网需求操作步骤配置文件 组网需求 如图1所示&#xff0c;某企业网络用一台华为公司iMaster NCE-CampusInsight作为分析器对交换机设备进行智能运维管理。iMaster NCE-CampusInsight与交换机之间已经实现路由…

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第6天

6.1 定位-相对和绝对和固定 6.2 相对和绝对和固定 6.3 堆叠顺序z-index 6.4 定位总结 6.5 CSS精灵 基本使用 6.6 案例 CSS精灵 京东服务 6.7 字体图标-下载和使用 6.8 字体图标-上传 6.9 垂直对齐方式vertical-align 6.10 过渡属性 6.11 修饰属性-透明度与光标类型 6.12 综合案…

从0开始图形学(光栅化)

前言 说起图形学&#xff0c;很多人就会提到OpenGL&#xff0c;但其实两者并不是同一个东西。引入了OpenGL加重了学习的难度和成本&#xff0c;使得一些原理并不直观。可能你知道向量&#xff0c;矩阵&#xff0c;纹理&#xff0c;重心坐标等概念&#xff0c;但就是不知道这些概…

Kong 负载均衡

负载均衡是一种将API请求流量分发到多个上游服务的方法。负载均衡可以提高整个系统的响应速度&#xff0c;通过防止单个资源过载而减少故障。 在以下示例中&#xff0c;您将使用部署在两台不同服务器或上游目标上的应用程序。Kong网关需要在这两台服务器之间进行负载均衡&…

[职场] 职场上该如何和同事相处呢?七种方法教你和同事友好相处 #其他#媒体

职场上该如何和同事相处呢&#xff1f;七种方法教你和同事友好相处 在职场上&#xff0c;如何和同事相处是一堂必修课。同事&#xff0c;是我们天天必须看到的人&#xff0c;只有和同事友好相处&#xff0c;我们才能生活得更好&#xff0c;工作得更好。那么&#xff0c;我们在…

小巨人大爆发:紧凑型大型语言模型效率之谜揭晓!

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Linux系统基础 03 IP地址虚拟网络、Linux软件包管理、ssh服务、apache服务和samba服务的简单搭建

文章目录 一、IP地址虚拟网络二、Linux软件包管理1、rpm包管理器2、yum包管理器3、源码安装 三、ssh服务四、apache服务五、samba服务 一、IP地址虚拟网络 1、IP地址格式是点分十进制&#xff0c;例&#xff1a;172.16.45.10。即4段8位二进制 2、IP地址分为网络位和主机位。网…

C# 夺冠,微软.NET前途光明!

本文以C# 摘得 “2023 年度编程语言“称号为背景&#xff0c;介绍.NET的历史、生态及发展势头&#xff0c;该文章是本人C#专栏的第一篇文章。 这里写目录标题 1.C#摘得"2023年度编程语言"奖项2.什么是.NET&#xff1f;2.1.NET简史2.2.NET是用于应用程序开发的生态系…

第5章 数据库操作

学习目标 了解数据库&#xff0c;能够说出数据库的概念、特点和分类 熟悉Flask-SQLAlchemy的安装&#xff0c;能够在Flask程序中独立安装扩展包Flask-SQLAlchemy 掌握数据库的连接方式&#xff0c;能够通过设置配置项SQLALCHEMY_DATABASE_URI的方式连接数据库 掌握模型的定义…

[架构之路-275]:五张图向你展现软件开发不仅仅是编码,而是一个庞大的系统工程

目录 一、软件开发是组织架构的一部分&#xff0c;是为业务服务的 二、软件开发是一个系统工程&#xff0c;需要组织各种组织内的资源 三、目标软件是一个复杂的系统 四、软件开发过程本身是一个系统工程 五、目标软件的测试验证是一个系统工程 一、软件开发是组织架构的一…

骨科器械行业分析:市场规模为360亿元

骨科器械一般指专门用于骨科手术用的专业医疗器械。按国家食品药品监督局的分类划分常分为&#xff1a;一类;二类和三类。按照使用用途和性能主要分为骨科用刀、骨科用剪、骨科用钳、骨科用钩、骨科用针、骨科用刮、骨科用锥、骨科用钻、骨科用锯、骨科用凿、骨科用锉/铲、骨科…

【MySQL】-12 MySQL索引(上篇MySQL索引类型前置-2-高性能的索引策略)

MySQL索引-高性能的索引策略 3 高性能的索引策略3.1 独立的列3.2 前缀索引和索引选择性3.3 多列索引3.4 选择合适的索引列顺序3.5 聚簇索引(Clustered Indexes)3.5.1 InnoDB和MyISAM的数据布局的比较3.5.2 按primary key的顺序插入行(InnoDB) 3.6 覆盖索引(Covering Indexes)3.…

linux 自动定时清理缓存

文章目录 1&#xff0c;查看内存占用情况&#xff1a;1.1、free和available的区别&#xff1f;1.2、交换分区的作用&#xff1f; 2&#xff0c;手动清理命令3&#xff0c;定时自动清理3.1&#xff0c;创建文件夹3.2&#xff0c;新建文件cleanBuffer.sh3.3&#xff0c;添加内容3…

Transformer的PyTorch实现之若干问题探讨(二)

在《Transformer的PyTorch实现之若干问题探讨&#xff08;一&#xff09;》中探讨了Transformer的训练整体流程&#xff0c;本文进一步探讨Transformer训练过程中teacher forcing的实现原理。 1.Transformer中decoder的流程 在论文《Attention is all you need》中&#xff0…

统一数据格式返回,统一异常处理

目录 1.统一数据格式返回 2.统一异常处理 3.接口返回String类型问题 1.统一数据格式返回 添加ControllerAdvice注解实现ResponseBodyAdvice接口重写supports方法&#xff0c;beforeBodyWrite方法 /*** 统一数据格式返回的保底类 对于一些非对象的数据的再统一 即非对象的封…

【资料分享】基于单片机大气压监测报警系统电路方案设计、基于飞思卡尔的无人坚守点滴监控自动控制系统设计(程序,原理图,pcb,文档)

基于单片机大气压监测报警系统电路方案设计 功能&#xff1a;实现的是大气压检测报警系统&#xff0c;可以通过传感器实时检测当前大气压值&#xff0c;可以设定大气压正常范围&#xff0c;当超过设定范围进行报警提示。 资料&#xff1a;protues仿真&#xff0c;程序&#x…

计算机二级C语言备考学习记录

一、C语言程序的结构 1.程序的构成&#xff0c;main函数和其他函数。 程序是由main函数和其他函数构成main作为主函数&#xff0c;一个C程序里只有一个main函数其他函数可以分为系统函数和用户函数&#xff0c;系统函数为编译系统提供&#xff0c;用户函数由用户自行编写 2.…

[职场] 抖音运营SOP全攻略 #微信#职场发展

抖音运营SOP全攻略 1.养号的步骤 注册一机—卡一号&#xff0c;在注册的前5天只看视频不发视频&#xff0c;单日观看视频的时长不少于30分钟。观看过程中正常评论点赞互动&#xff0c;关注5-10个头部大号。关注20个二三十万至百万的竟品账号。 粉丝量低于1W的账号下不要留下…

Compose之Slider全面解析

JetPack Compose系列&#xff08;14&#xff09;—Slider Slider&#xff0c;即拖动条&#xff0c;默认包含了一个滑块和一个滑动轨道。允许用户在一个数值范围内进行选择。 按照惯例&#xff0c;先观察其构造函数&#xff1a; Composable fun Slider(value: Float,onValueCh…