新年快乐(水)

news/2024/4/25 13:48:27

首先,祝大家新年快乐,龙年大吉!

然后我来大概解释一下春晚上两个魔术的原理吧。切,要不是我电脑坏了才不看春晚呢。

第一个魔术根数学没多大关系,主要就是换了一副牌,然后假洗。至于计时器吗,那基本就是后台改的数据了。

第二个魔术就是约瑟夫环。就是不管你是男的女的,南方北方,最后都能拼出完整的一张牌(除了尼格买提)。给你们看一个我写的破解代码。

#include <bits/stdc++.h>
using namespace std;
vector<int> card,tmp;
int head,tail,len;//队列模拟卡片(虽然用了vector)
bool find(int x){for(int i=0;i<card.size();i++){if(card[i]==x)return true;}return false;
}
void shuffle(){tmp.clear();for(int i=4;i>0;i--){srand(time(0));int idx=rand()%i;tmp.push_back(card[idx]);card.erase(card.begin()+idx);}for(int i=0;i<tmp.size();i++)card.push_back(tmp[i]);
}
int main(){head=tail=len=0;srand(time(0));while(card.size()!=4){int x=rand()%14;if(x!=0 && !find(x)){card.push_back(x);tail++;}}cout<<"随机抽4张牌,分别是";for(int i=0;i<card.size();i++){cout<<card[i];if(i!=3)cout<<',';}cout<<endl;shuffle();cout<<"打乱顺序,牌分别是";for(int i=0;i<card.size();i++){cout<<card[i];if(i!=3)cout<<',';}cout<<endl;for(int i=0;i<4;i++){card.push_back(card[i]);tail++;}cout<<"对折撕开后,牌分别是";for(int i=0;i<card.size();i++){cout<<card[i];if(i!=7)cout<<',';}cout<<endl;string name;cout<<"输入你的英文名字,也可以是你中文名字的首字母:";cin>>name;len=name.size();for(int i=0;i<len;i++){card.push_back(card[head]);head++;tail++;}cout<<"按照名字移动后,牌分别是:";for(int i=head;i<tail;i++){cout<<card[i];if(i!=(tail-1))cout<<',';}cout<<endl;tmp.clear();for(int i=0;i<3;i++){tmp.push_back(card[head]);head++;}len=tail-head;for(int i=0;i<(len/2);i++){card.push_back(card[head]);head++;tail++;}for(int i=0;i<tmp.size();i++){card.push_back(tmp[i]);tail++;}for(int i=0;i<(len-len/2);i++){card.push_back(card[head]);head++;tail++;}cout<<"将最上面三张插到剩下牌的中间后,牌分别是:";for(int i=head;i<tail;i++){cout<<card[i];if(i!=(tail-1))cout<<',';}cout<<endl;int key=card[head];head++;cout<<"藏好的牌是"<<key<<endl;int k;cout<<"南方人输1,北方人输2,其他输3:";cin>>k;tmp.clear();for(int i=0;i<k;i++){tmp.push_back(card[head]);head++;}len=tail-head;for(int i=0;i<(len/2);i++){card.push_back(card[head]);head++;tail++;}for(int i=0;i<tmp.size();i++){card.push_back(tmp[i]);tail++;}for(int i=0;i<(len-len/2);i++){card.push_back(card[head]);head++;tail++;}cout<<"在将前k(k是你刚刚输的数字)张牌插入中间后,现在的牌分别是:";for(int i=head;i<tail;i++){cout<<card[i];if(i!=(tail-1))cout<<',';}cout<<endl;string sex;cout<<"你的性别是:";cin>>sex;if(sex=="男")head++;elsehead+=2;cout<<"由于你的性别是"<<sex<<",所以弃完后剩下这些牌:";for(int i=head;i<tail;i++){cout<<card[i];if(i!=(tail-1))cout<<',';}cout<<endl;cout<<"见证奇迹的时刻"<<endl<<"把第一张牌放到末尾7次"<<endl;for(int i=0;i<7;i++){card.push_back(card[head]);head++;tail++;}cout<<"现在的牌分别是:";for(int i=head;i<tail;i++){cout<<card[i];if(i!=(tail-1))cout<<',';}cout<<endl;cout<<"好运留下来,保洁阿姨对不起!"<<endl;while((head+1)!=tail){card.push_back(card[head]);head++;tail++;head++;}cout<<"藏好的牌是"<<key<<",现在手里的牌是:";for(int i=head;i<tail;i++)cout<<card[i]<<endl;cout<<"成功啦!"<<endl;return 0;
}

那为什么这篇博客迟到了这么久?啊是因为除夕早晨我搁着那玩florr,结果磁盘莫名其妙的坏了,然后......不过现在总算是好了。


https://www.xjx100.cn/news/3270941.html

相关文章

Github 2024-02-12 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-12统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Rust项目3Python项目3JavaScript项目1TypeScript项目1C项目1C项目1PowerShell项目1非开发语言项目1 SubQuery…

洛谷 P2669 [NOIP2015 普及组] 金币

本文由Jzwalliser原创&#xff0c;发布在CSDN平台上&#xff0c;遵循CC 4.0 BY-SA协议。 因此&#xff0c;若需转载/引用本文&#xff0c;请注明作者并附原文链接&#xff0c;且禁止删除/修改本段文字。 违者必究&#xff0c;谢谢配合。 个人主页&#xff1a;blog.csdn.net/jzw…

docker安装、运行

1、安装 之前有docker的话&#xff0c;需要先卸载旧版本&#xff1a; sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 安装之前需要安装yum工具&#xff1a; sud…

《Linux 简易速速上手小册》第8章: 安全性与加固(2024 最新版)

文章目录 8.1 防火墙与安全策略8.1.1 重点基础知识8.1.2 重点案例&#xff1a;配置 iptables 以保护 Web 服务器8.1.3 拓展案例 1&#xff1a;使用 firewalld 配置动态防御区域8.1.4 拓展案例 2&#xff1a;配置 ufw 以简化管理 8.2 SSH 安全最佳实践8.2.1 重点基础知识8.2.2 重…

网络安全检查表

《网络攻击检查表》 1.应用安全漏洞 2.弱口令&#xff0c;默认口令 3.服务器互联网暴露 4.操作系统&#xff0c;中间件安全漏洞 5.研发服务器&#xff0c;邮件服务器等安全检查

车载诊断协议DoIP系列 —— 协议中术语解释和定义

车载诊断协议DoIP系列 —— 协议中术语解释和定义 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,…

二、ClickHouse简介

ClickHouse简介 前言一、行式存储二、DBMS功能三、多样化引擎四、高吞吐写入能力五、数据分区与线程级并行六、场景七、特定版本 前言 ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库&#xff08;DBMS&#xff09;&#xff0c;使用 C 语言编写&#xff0c;主要…

ZigBee学习——BDB

✨本博客参考了善学坊的教程&#xff0c;并总结了在实现过程中遇到的问题。 善学坊官网 文章目录 一、BDB简介二、BDB Commissioning Modes2.1 Network Steering2.2 Network Formation2.3 Finding and Binding&#xff08;F & B&#xff09;2.4 Touchlink 三、BDB Commissi…