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

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

假设我们初始卡牌为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洪爵,求求关注捏,干货多多】
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言之:编译和链接

目录 1. 翻译环境和运行环境翻译环境 2. 翻译环境&#xff1a;预编译编译汇编链接预处理&#xff08;预编译&#xff09;编译词法分析语法分析语义分析汇编链接运行环境 1. 翻译环境和运行环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同的环境。 第一种是翻译环境&a…

常用的前端模块化标准总结

1、模块化标准出现以前使用的模块化方案&#xff1a; 1&#xff09;文件划分&#xff1a; 将不同的模块定义在不同的文件中&#xff0c;然后使用时通过script标签引入这些文件 缺点&#xff1a; 模块变量相当于是定义在全局的&#xff0c;容易造成变量名冲突&#xff08;即不…

分享76个表单按钮JS特效,总有一款适合您

分享76个表单按钮JS特效&#xff0c;总有一款适合您 76个表单按钮JS特效下载链接&#xff1a;https://pan.baidu.com/s/1CW9aoh23UIwj9zdJGNVb5w?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集…

[office] excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 #笔记#学习方法

excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 在日常工作中经常会到用excel&#xff0c;有时需要计算毛重和皮重的时间间隔&#xff0c;具体的计算方式是什么&#xff0c;一起来了解一下吧 在日常工作中经常会到用excel&#xff0c;在整理编辑过磅数据…

树莓派的pip安装时候添加清华源

每次都要去找镜像网址&#xff0c;太麻烦了&#xff0c;通过改配置可以一次性解决。 首先创建一个.pip 目录 mkdir ~/.pip意味着在当前目录下创建.pip文件&#xff0c;不过这个是隐藏文件&#xff0c;一般情况下是关闭隐藏文件的可视的&#xff0c;于是我绕了点弯弯。 编辑…

office 2021安装教程(官方自动批量激活,无付费)

全程不需要第三方软件&#xff0c;所有用到的工具都是微软官方的&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 基于KMS的 GVLK&#xff1a;https://learn.microsoft.com/zh-cn/deployoffice/vlactivation/gvlks 首先我们需要去下载 office 软件部署工具&a…

Compose之Slider全面解析

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

ctfshow-命令执行(web73-web77)

web73 用不了上一题的通用poc了 因为禁用了strlen 但是可以改一个函数自定义一个函数只要是能实现strlen效果即可 cvar_export(scandir(/));exit(0); 根目录下有一个flagc.txt文件 cinclude(/flagc.txt);exit(0); web74 禁用了scandir函数 那就使用web72的glob协议 查看目录下…

「daily updating」k3s + openfaas serverless bench 踩坑指南持续更新中

OpenFaas从入门到实战 – 踩坑指南 &#xff5c; k3dOpenFaas | deploy your first python function https://blog.alexellis.io/first-faas-python-function/ https://docs.openfaas.com/deployment/kubernetes/ 搭建环境&#xff1a;第一种方法失败&#xff0c;第二种方法…

基于微信小程序的校园失物招领小程序

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

WWW 万维网

万维网概述 万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。 万维网是一个大规模的、联机式的信息储藏所。 万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点&#xff0c;从而主动地按需获取丰富的信息。 这种访问方式称为“链接”。 万维网是分…

惊艳!2.77亿参数锻造出Agent+GPT-4V模型组合,AI领航机器人、游戏、医疗革新,通用智能时代你准备好了吗?

更多内容迁移知乎账号&#xff0c;欢迎关注&#xff1a;https://www.zhihu.com/people/dlimeng 斯坦福、微软、UCLA的顶尖学者联手&#xff0c;推出了一个全新交互式基础代理模型&#xff01; 这个模型能处理文本、图像、动作输入&#xff0c;轻松应对多任务挑战&#xff0c;…