你对星座有兴趣吗?传说星座与人的性格、命运、爱情、事业、友情、家庭都有紧密联系,不过魔术师说,那些都是浮云。“我今天为你表演一个靠谱的,我要用心灵来感知你的星座。如果你对星座一无所知,就先看一下下面这张表吧,一年一共有十二个星座,你属于哪一个星座取决于你的出生日期。”

这个魔术其实很简单,魔术师会先后展示给观众 A、B、C、D 四张图片,每一次观众只需要仔细看一看,自己的星座有没有位列其中。

举个例子,如果你是史上最不幸的、每四年才可以过一次生日的那个人,出生日期是 2 月 29 日,那你的星座一定是双鱼座。这样,你的星座只有在图片 C 和 D 中才可以看到,在图片 A、B 中都看不到。把这个结果告诉魔术师,魔术师经过一番心灵感应后,就可以确定你是双鱼座。

魔术揭秘

对于不明真相的围观者来说,这个魔术会显得很神奇。不过,一部分理工男却能一眼看穿魔术的蹊跷之处。魔术师具体的做法是,首先在心里安装一个“计数器”,一开始数字为 0。如果你的星座出现在了卡片 A 中,魔术师就会在计数器上加 1,否则计数器数字不变;如果图片 B 中有你的星座,他就会再加上 2 ;图片 C 中有你的星座,计数器就加上 4;图片 D 中有你的星座,计数器就会加 8。计数器最后得到的数字就是答案了。比如按照刚刚那位“生日帝”告诉魔术师的结果,计数器的数字就是 4 + 8 = 12。然后,让文章开头那张图中隐藏的数字显示出来:

数字对应的结果就是心灵感应到的星座了。

二进制计数法

正常情况下,数字 12 可以写成 1×10 + 2×1,其中 1 是十位数字,2 是个位数字。如果这个数字更大,还会有百位、千位等等。这些数位的单位从小到大分别是 1、10、100、1000⋯⋯

可是我们还可以用另一种方式来表示一个数,就是魔术师所用的方式——二进制。在二进制中,12 = 1×8 + 1×4 + 0×2 + 0×1,在这里,数位的单位由 1、10、100、1000 变成了 1、2、4、8,同时每个数位上的数字也由 0 到 9 十种变为了 0 和 1 两种,12 也就可以用 1100 来表示了。卡片 A、B、C、D 分别是从小到大的 4 个数位,由于 12 号星座——双鱼座——的二进制表达是 1100,因此双鱼座就只在卡片 C 和 D 上出现。在四张卡片上指认星座的时候,你也就把星座对应的数字的二进制表达偷偷泄露给了魔术师,如果你告诉魔术师有,就相当于告诉他了那一位数字是 1,反之,那一位数字就是 0。

二进制的用途非常广泛。计算机正是像这位魔术师一样,用二进制来表示各种数字。

转自【http://www.guokr.com/article/5196/】

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

有趣的二进制算法小魔术相关推荐

  1. 数学小魔术——神奇的二进制

    小魔术--猜数游戏 心中默想一个小于50的两位数 接着,我问你在以下的6张卡片中,哪几张卡片中有你想的那个数?(为什么是6张卡片,和50有什么关系) 最后,我不费吹灰之力就能猜出这个数. 这六张卡片有 ...

  2. 赠书:京东当当新书榜TOP1的“算法小抄”!

    上周日,一本算法新书空降京东和当当双网计算机新书榜榜首, 在大家还一脸蒙圈的时候, 它又迅猛夺下京东全品类新书榜第一名, 以及京东计算机图书总榜第一名, 并且,在两网榜单上霸榜至今! (京东计算机总榜 ...

  3. 这本空降京东当当新书榜TOP1的“算法小抄”是什么来头?

    点击上方蓝色"程序猿DD",关注我 每周福利送不停! 上周日,一本算法新书空降京东和当当双网计算机新书榜榜首, 在大家还一脸蒙圈的时候, 它又迅猛夺下京东全品类新书榜第一名, 以及 ...

  4. 有趣的二进制—高效位运算

    2019独角兽企业重金招聘Python工程师标准>>> 上一篇<有趣的二进制>我们讲到二进制的一些基础知识,但没有讲到位运算,有同学大呼不过瘾,那这一篇主要讲解下位运算的 ...

  5. mysql 魔术设置_09年系统架构师大会中一个mysql小魔术的分析

    记得在09年系统架构师大会上一个51.com的DBA秀了一个mysql的小"魔术",其大概过程是不更改数据库表中的数据,只是执行了一下flush table表中的数据就全部改变. ...

  6. 惊!空降京东当当新书榜TOP1,这本“算法小抄”是什么来头?

    上周日,一本算法新书空降京东和当当双网计算机新书榜榜首, 在博文菌还一脸蒙圈的时候, 它又迅猛夺下京东全品类新书榜第一名, 以及京东计算机图书总榜第一名, 并且,在两网榜单上霸榜至今! (京东计算机总 ...

  7. 有趣的数据结构算法9——利用栈完成2进制到8进制的转换

    有趣的数据结构算法9--利用栈完成2进制到8进制的转换 解题思路 实现代码 GITHUB下载连接 刚学习完栈的我想试试栈都可以干嘛,于是找到了一个小应用,利用栈完成2进制到8进制的转换.如果大家还不清 ...

  8. 数学小魔术——猜数字

    数学小魔术--神奇的二进制 请你任意猜想一个三位数,把这个三位数乘以 91 的乘积的最后三位告诉我,我们很快猜出你心中所想的那个三位数是多少? 我们以对方心中所想的 789 为例,则对方计算出 789 ...

  9. labuladong的算法小抄pdf_随机算法:水塘抽样算法

    读完本文,你可以去力扣拿下如下题目: 382.链表随机节点 398.随机数索引 -----------我最近在 LeetCode 上做到两道非常有意思的题目,382 和 398 题,关于水塘抽样算法( ...

最新文章

  1. 王者荣耀服务器维护5月22,5月22日王者荣耀更新内容一览
  2. VHDL操作运算符的优先级顺序
  3. QQ浏览器怎么设置主页 QQ浏览器设置默认主页教程
  4. Tomcat 比 nio 、aio性能更好的apr介绍
  5. 大神降临(公历1982年11月24号)
  6. 前端笔记 | CSS基础
  7. android studio for android learning (二)
  8. C#反射(Reflection)对类的属性get或set值
  9. 开放世界游戏中的大地图背后有哪些实现技术?
  10. 双代号网络图快速计算时差法
  11. 有一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中。——C与C++实现
  12. DB2表空间状态列表
  13. 酷派Y60-C1官方ROM内容解析
  14. 回归方程的拟合优度检验_判定一元线性回归方程拟合优度的判定系数R的取值范围...
  15. S3C2440移植linux3.4.2内核之内核框架介绍及简单修改
  16. 一个神奇的分布式计算框架:jini
  17. Git 上传代码到github上
  18. STM32F103RBT6 串口1正常接收,发送过程也很正常,但TXD引脚没有波形
  19. PHP fwrite写入文件,记事本打开乱码
  20. Mituan-极客时间-漏洞挖掘与智能攻防实战

热门文章

  1. 计算机主板的主要作用,计算机主板的作用
  2. jnz和djnz_单片机指令
  3. 关于用c++播放音乐的问题
  4. winhex可以编程c语言吗,[转载]对winhex API编程!
  5. 【课设分享】基于51单片机的恒温控制器系统
  6. 广州优漫动游公司:人物海报怎样设计才不显得低端?
  7. 网络游戏外挂制作(3)-1
  8. 分类模型训练完之后,测试效果极差可能原因分析
  9. python 中execl等表格操作学习心得
  10. Linux系统的安装与设置