有趣的二进制问题

前言

       由于最近在忙其他事情而导致一周多没有写博客了,趁今天下午有空,也想起了一个之前看到的有趣的二进制问题,所以这次博文就探讨一下这个有趣的问题。

题目

       有1000瓶水,其中999瓶没有毒药,只有1瓶有毒药,只要一喝到毒药就会在一天后死亡,给你10个老鼠和1天的时间,问你怎样在规定的条件内快速找到哪一瓶水含有毒药?

<!-- more -->

解决方案

  • 对1000瓶水贴上二进制编号(10位):

    1号 -----------0000000001

    2号 -----------0000000010

    3号 -----------0000000011

    ……………………………………

    999号 --------1111100111

​ 1000号 --------1111101000

  • 对10只老鼠进行编号:

    分别是A,B,C,D,E,F,G,H,I,J

  • 让A~J老鼠分别喝同一列编码是1的水,即:

    A老鼠喝编码格式为xxxxxxxxx1的水

    B老鼠喝编码格式为xxxxxxxx1x的水

    C老鼠喝编码格式为xxxxxxx1xx的水

    D老鼠喝编码格式为xxxxxx1xxx的水

    E老鼠喝编码格式为xxxxx1xxxx的水

    F老鼠喝编码格式为xxxx1xxxxx的水

    G老鼠喝编码格式为xxx1xxxxxx的水

    H老鼠喝编码格式为xx1xxxxxxx的水

    I老鼠喝编码格式为x1xxxxxxxx的水

    J老鼠和编码格式为1xxxxxxxxx的水

  • 假如A,D,I老鼠死了,那个该水含有毒药的编号就是0100001001,化为10进制为265号

小结

以上就是一个二进制比较有趣的问题。

转载于:https://my.oschina.net/u/4157164/blog/3079141

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值