“猜你心里想的数” 小魔术揭秘

女儿展示了一个小魔术,如下 6 张写满数字的扑克:
在这里插入图片描述
让我心中默默选 1~60 中随意一个数字 x,然后她只依次拿这 6 张扑克问我 x 在不在里面,完事后她就知道 x 是多少。隐约记得哪里看到过这个魔术。

我拿过扑克仔细观察了一阵,想知道怎么回事。如果干别的职业还真容易陷入找规律的路子,但左上角数字还是没躲过码农之眼。记得去年在上海科技馆就看到过有人在炫耀 1,2,4,8,16,…65536,我颇为不屑,我跟家人说这个我也会,不光会这个,我还知道 16 进制 0xffffffff 是 4294967296,这就是职业直觉。

这个魔术很简单,对方只需要知道哪些扑克上有你默选的数字 x,然后将这几张扑克左上角的数字加在一起就是 x。道理也简单,因为 1,2,4,8,16,32 这 6 个数字的排列组合算术和可以编码从 1 到 63 的任何数字。

首先,C(6,1) + C(6,2) + C(6,3) + C(6,4) + C(6,5) + C(6,6) = 6 + 15 + 20 + 15 + 6 + 1 = 63 说明 6 个数字的排列组合算术和有 63 种,其次,1,2,4,8,16,32 是 2 的连续次幂,写成 2 进制就是 1,10,100,1000,10000,100000,最多只用 1 次某个数,就可以表示 2 进制 1 到 111111 中的任何数字,而 111111 就是 63。

这就是答案了,如果你选的是 35,而 35 = 32 + 2 + 1,则只需要在左上角是 32,2,1 的扑克上写上 35 即可,如果你选的是 20,而 20 = 16 +4,则只有左上角为 16,4 的扑克上写有 20。

我们在日常生活中都知道这个道理,10 进制中,为表示 1000 以内连续的所有数字,100,101,10^2 这 3 个数字就足够,每个数字最多用 10 -1 = 9 次,如果是 3 进制,则 30,31,32,33,3^4 能表示连续数字,每个数字最多出现 3 - 1 = 2 次。但我们发现,能以最简单的方式玩这个游戏的只有 2 进制,因此只有 2 进制只需要用 1 次 2 的次幂数字即可,因此只需要简单加和就行了。

其实我们曾经天天都在玩这个游戏,只不过是反着玩,先给出一个数字,然后拆成一些 “基” 数字的加和,尽量每个基数字只用一次,想到是什么了吗?很简单,付钱和找零,这是一个贪心背包。

付钱和找零都尽量不要同一币值的货币给多张,尽量不数钱而只将一眼看穿的币面值做累加,因此尽量每种币面只用一次。

我的货币面值种类是处在 2 进制和 3 进制之间的,以 RMB 为例,它拥有 1,2(曾经有,为了论述方便就当它还有),5,10,20,50,100 的多种面值,它们的排列组合算术运算可以表示从 1 元到 200 以内的任何元钱,1 元钱就是 1 张 1 元,3 元钱是 1 张 1 元 + 1 张 2 元,有趣的是,4 = 2 + 2 之外,还可以是 4 = 5 - 1,这就增加了交易灵活性和货币数量在双方的平衡。

如果是卖者找零也一样的操作。这种 2~3 进制的货币面值发行单位其实在半强制引导人们做二分贪心背包,操作非常简单,假设目标价格是 x,挑最大面值的钱累加做算术和 s,只要 s < x 就继续,如果 s > x 就变换双方角色,如果对方不肯,就找附近的人以当前最大的面值重复这个过程后做等额交换,俗称 “换零钱”。而对于天天买卖的人,特别是商户而言,这些单位币值的排列组合算术和,算术差简直就像程序员对于 2 的不同次幂之间的算术运算一样烂于心了。

如果用纸币玩本文开头介绍的游戏,在 1 元钱上会写上哪些数字呢?显然除了 1 元币值表示它本身,还有所有它参与的所有,比如 3,6,8,11,…,而 5 元钱上会写上 15,25,35,45,…,对于 5 - 1 = 4 这种情况,可以在 5 元钱上写上 4,然后在 1 元钱上在 4 旁边做个记号表示 -1。

总体而言,就文初图片而言,这个游戏迷惑性还是太差了,首先,对程序员那么敏感的数字不该放在那么显眼的位置,其次,其余的数字太连续了不够散列。解决这些问题的方式五花八门,可以将左上角的数字做多次索引才找到真正的 “基” 数字,再混入一些其它运算。

在隐藏在背后的运算面前,结果跟障眼法没什么区别,而逆向这些运算不光看知识和技术,还要看筹码,以及你有没有这个闲心。

浙江温州皮鞋湿,下雨进水不会胖。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Activiti工作流知识点图表总结

Acitivi是比较早的工作流引擎&#xff0c;后来居上者如Flowable或者Camunda&#xff0c;功能以及一些特性做了一些增强&#xff0c;这两个都是从Activiti的某个版本分离出来&#xff0c;独自发展。Flowable是由Activiti的主要开发者在离开Alfresco公司后创建的。Flowable项目是…

3.11设计模式——Visitor 访问者模式(行为型)

意图 表示一个作用于某对象结构中的各元素的操作。它允许在不改变各元素的类的前提下定义作用于这些元素的新操作。 结构 Visitor&#xff08;访问者&#xff09;为该对象结构中ConcreteElement&#xff08;具体元素&#xff09;的每一个类声明一个Visit操作&#xff0c;该操…

分类规则挖掘(二)

目录 三、决策树分类方法&#xff08;一&#xff09;决策树生成框架&#xff08;二&#xff09;ID3分类方法&#xff08;三&#xff09;决策树的剪枝&#xff08;四&#xff09;C4.5算法 三、决策树分类方法 决策树 (Decision Tree) 是从一组无次序、无规则&#xff0c;但有类别…

考研数学|李艳芳900比李林880难吗?值得做吗?

李艳芳老师比较有名的就是他的真题&#xff0c;900题还真是今年比较新的题集 目前&#xff0c;我看过900题的前两章&#xff0c;我觉得还是有一些亮点的&#xff1a; 900题第一章 与880第一章相比&#xff0c;两者各有千秋。880有种“一种题型一道题”&#xff08;”精做一题…

普冉PY32系列(十五) PY32F0系列的低功耗模式

目录 普冉PY32系列(一) PY32F0系列32位Cortex M0 MCU简介普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境普冉PY32系列(三) PY32F002A资源实测 - 这个型号不简单普冉PY32系列(四) PY32F002A/003/030的时钟设置普冉PY32系列(五) 使用JLink RTT代替串口输出日志普冉PY32…

教育信息化对于教育新生态作用

现在往回观察我国的教育发展史&#xff0c;会发现教育的创新变革和社会的转型发展是一脉相承的。就当前&#xff0c;我们以人工智能技术为核心的新兴信息技术正在联合起来发力&#xff0c;正在引发科革命和技术产业的全面革命&#xff0c;这对于人类的生产生活&#xff0c;思维…

2024年五一杯高校数学建模竞赛(A题)|钢板切割问题 | 建模解析,小鹿学长带队指引全代码文章与思路

我是鹿鹿学长&#xff0c;就读于上海交通大学&#xff0c;截至目前已经帮200人完成了建模与思路的构建的处理了&#xff5e; 本篇文章是鹿鹿学长经过深度思考&#xff0c;独辟蹊径&#xff0c;通过路径优化解决钢板切割问题。结合贪心算法&#xff0c;Floyd-Warshall等多元算法…

ESD管 AZ5825-01F国产替代型号ESDA05CPX

已经有很多客户选用雷卯的ESDA05CPX替代Amazing 的 AZ5825-01F&#xff0c; 客户可以获得更好的价格和更快的交期&#xff0c;主要应用于对5V供电和4.5V供电电流较大的Vbus线路插拔保护等。 雷卯ESDA05CPX优势&#xff1a; 带回扫 &#xff0c;钳位电压Vc 低&#xff0c;IPP为…

Windows11下Docker使用记录(四)

Docker使用记录&#xff08;四&#xff09; 1. container与host的文件传输2. container 与 Unity ROS setting 通讯3. container和wsl2或windows11我一直无法ping通 1. container与host的文件传输 从 container 复制文件至 host docker cp <container_name>:<file_p…

Springboot+Vue+小程序+基于微信小程序电影票网购系统

Java电影票购买管理系统&#xff0c;Maven管理工具&#xff0c;MyBatis数据库操作&#xff0c;idea平台开发&#xff0c;后台的前端为Vue&#xff0c;前台客户端为小程序&#xff0c;功能丰富&#xff0c;还有电影周边购买功能&#xff0c;请在最下方二维码处联系我即可&#x…

有种预感,今年双11可能有点冷清,你们觉得呢?

一方面是各个电商平台把促销周期拉长了&#xff0c;不再盯着11.11这一天&#xff1b;另一方面大家的荷包也不是那么鼓了&#xff0c;什么原因都懂的&#xff0c;老铁们觉得呢&#xff1f;

C# 实现格式化文本导入到Excel

目录 需求 Excel 的文本文件导入功能 范例运行环境 配置Office DCOM 实现 组件库引入 OpenTextToExcelFile 代码 调用 小结 需求 在一些导入功能里&#xff0c;甲方经常会给我们一些格式化的文本&#xff0c;类似 CSV 那样的纯文本。比如有关质量监督的标准文件&…

Apifox设置前置url的操作方法

目录 第一步 配置前置url&#xff0c;右上角设置-点击管理环境 第二步 填写请求方法和接口路径&#xff0c;切换成刚才设置的测试环境&#xff0c;点击发送 同一个域名遇到测试二个及以上接口&#xff0c;就可以通过设置前置url的方法来提升效率。操作也很简单&#xff0c;下…

【linux学习指南】linux 环境搭建

文章目录 &#x1f4dd;前言&#x1f320; 云服务器的选择&#x1f320;阿里云&#x1f320;腾讯云&#x1f320;华为云 &#x1f320;使用 XShell 远程登陆到 Linux&#x1f309;下载 XShell &#x1f320;查看 Linux 主机 ip&#x1f309; XShell 下的复制粘贴&#x1f309; …

供应链管理(SCM)把握好这5点,绝对差不到哪里去。

说到B端系统开发&#xff0c;框架是绕不开的话题&#xff0c;框架为开发者提供了诸多便利&#xff0c;同时也设置了条条框框&#xff0c;B系统工场为大家详细解读一下。 B端系统指的是面向企业或机构的后台管理系统&#xff0c;采用框架进行开发有以下优势和劣势&#xff1a; …

书生·浦语2.0(InternLM2)大模型实战--Day05 Lagent AgentLego 智能体应用搭建

视频地址&#xff1a;https://www.bilibili.com/video/BV1Xt4217728/ 课程文档&#xff1a;https://github.com/InternLM/Tutorial/tree/camp2/agent 课程作业&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/agent/homework.md 1. 概述 1.1 Lagent 是什么 La…

Spring Cloud Kubernetes 实践 服务注册发现、服务动态配置

一、Spring Cloud Kubernetes 随着云计算和微服务架构的不断发展&#xff0c;k8s 和Spring Cloud成为了当今技术领域的两大热门话题。k8s作为一个开源的容器编排平台&#xff0c;已经在自动化部署、扩展和管理方面取得了巨大的成功&#xff0c;而Spring Cloud则以其丰富的生态…

MySQL中索引的数据结构

2.3.1. 索引数据结构 索引就是能够提高查询速度的一种数据结构&#xff0c;在数据插入时就进行了排序&#xff08;会影响插入和更新的性能&#xff09;&#xff0c;索引广泛使用的是B树索引。 B树索引结构&#xff1a; 目前是基于磁盘排序效率最高的数据结构&#xff0c;树非…

Python 2 and3 兼容性问题的工具库之six使用详解

概要 在 Python 社区中&#xff0c;随着 Python 2 的逐渐退出舞台&#xff0c;许多项目需要同时兼容 Python 2 和 Python 3。为了简化这一任务&#xff0c;Python 社区开发了一个名为 six 的工具库&#xff0c;它提供了一组函数和工具&#xff0c;使得编写兼容 Python 2 和 Py…

Pandas Series的运算原来这么简单

Series的运算主要包括加法、减法、乘法和除法等基本算术运算。这些运算通常是按照索引对应计算的&#xff0c;如果两个Series的索引不同&#xff0c;则结果中对应位置将填充为NaN&#xff08;空值&#xff09;。 需要注意的是&#xff0c;在进行Series运算时&#xff0c;需要确…