`

百度面试题

阅读更多
听完这道题后,我第一感觉X应该是log2(N)的上界。不过我当时没说出答案,我在想如何证明出来,最后一时没想出来好的简单的证明方法,也错失了这个机会。
现在证明一下,其实这个思路非常简单。
假设这N个瓶子分别标号为0、1、2、...、N - 1、N
用0表示水加入盐后不变色,1表示水加入盐后变色,则X碗水中加入盐后的状态可用X位的二进制来表示。
易知这状态有2^X种,用一种状态就可以对应假盐的瓶子号,而假盐的瓶子号只有N种。
现在关键是怎么样往水中加盐使其最后的状态就可以看出唯一的假盐的瓶号。
先看几个数的二进制表示(我从左往右记,与平时的刚好相反)
0 0000……
1 1000……
2 0100……
3 1100……
从这个几个数大家会发现用什么方法呢?
比如0号状态对应结果是0号瓶是假盐,X个碗状态都不变色,则显然0号瓶盐不加入任何碗中
1号状态对应结果是1号瓶是假盐,X个碗只有第1个碗变色,则只把1号瓶盐加入第一个碗中
2号状态对应结果是2号瓶是假盐,X个碗只有第2个碗变色,则只把2号瓶盐加入第一个碗中
3号状态对应结果是3号瓶是假盐,X个碗只有第1、2个碗变色,则只把2号瓶盐加入第一、二个碗中
现在给定一个具体的数,N=8,该如何往碗中加盐,从上面的分析中可以我们可以按如下方法加盐
X = log2(N) = 3
0 000
1 100
2 010
3 110
4 001
5 101
6 011
7 111
则0号瓶盐不加入任何碗中,1号瓶盐只加入第一个碗中,2号瓶盐只加入第二个碗中,3号瓶盐加入第一、二个碗中,4号瓶盐只加入第三个碗中,5号瓶盐加入第一、三个碗中,6号瓶盐加入第二、三个碗中 ,7号瓶盐三个碗中都加入。
即第一个碗中将加入1、3、5、7号瓶盐
第二个碗中将加入2、3、5、7号瓶盐
第三个碗中将加入4、5、6、7号瓶yan
这样由3个碗中最后的状态就可以知道唯一的假盐的瓶号了。
N为其他数,方法也跟这个一样,不再赘述~
分享到:
评论

相关推荐

    百度面试题大全

    【百度面试题大全】涵盖了多个IT领域的知识点,包括数据结构、算法、数据库理论以及市场营销策略。以下是这些知识点的详细说明: 1. **堆和栈的区别**:堆和栈是计算机内存管理的两种基本数据结构。栈是后进先出...

    百度面试题总结

    "百度面试题总结"这个资料包很可能包含了百度在招聘过程中对C++程序员的考察点,帮助应聘者更好地准备面试。 C++的基础知识点包括: 1. **基本语法**:C++的基础始于了解变量、数据类型、运算符、流程控制(如if...

    java 百度面试题 java 百度面试题

    java 百度面试题

    百度面试题 百度面试题

    ### 百度面试题解析 #### 一、捣乱分子对问题 **题目描述:** 在给定的一个整型序列中,如果前面的人比后面的人高(两人身高相同被认为是合适的),那么这一对人就被视为“捣乱分子”。例如,对于序列`176, 178, ...

    C++百度面试题

    【C++百度面试题】涉及的知识点主要包括C++语言特性、操作系统原理以及算法设计。 1. **数据库死锁原理及避免策略**: - 死锁是由于资源竞争导致的两个或更多进程无法继续执行的现象。产生死锁的必要条件包括互斥...

    百度面试题汇总(java)

    ### 百度面试题汇总(Java) #### 一、Java基础知识 1. **自我介绍**:面试官希望从自我介绍中获取应聘者的基本背景信息,包括但不限于教育经历、工作经验等,以便于后续针对这些背景提出具体问题。 2. **项目...

    百度面试题集锦

    ### 百度面试题解析:求最短操作路径 #### 题目背景 题目来源于一份整理的百度面试题集,该题集被认为是一个很好的资源,对于正在寻找工作的求职者来说具有较高的参考价值。 #### 题目描述 题目要求实现一个函数,...

    百度面试题第三题及答案.doc

    《百度面试题第三题及答案解析》 面试是求职过程中至关重要的一环,尤其对于IT行业的面试,往往涉及到具体的技术问题和解决方案。本题主要关注的是数据库设计与优化,以及系统设计策略,这些问题在实际工作中具有很...

    2011 百度面试题总结

    标题与描述均提到了“2011百度面试题总结”,这意味着内容主要聚焦于2011年百度在招聘过程中使用的面试题目,尤其是针对数据挖掘研发工程师实习生的岗位。这样的总结对于准备进入IT行业,尤其是对百度或类似企业感...

    百度面试题1

    【标题】:“百度面试题1” 【描述】:这部分内容主要涵盖了Java编程语言中的关键概念,包括抽象类、接口、基本数据类型、数组操作、HashMap的实现原理、接口与抽象类的区别、面向对象的四大特性(抽象、封装、继承...

    百度面试题 shell

    根据给定的信息,我们可以从以下几个方面来探讨与“百度面试题 shell”相关的知识点: ### 一、斐波那契数列实现(Shell版) 题目要求使用Shell脚本编写斐波那契数列的生成器。这里提供的代码示例是Python语言的...

    百度历年面试题答案

    ### 百度历年面试题答案解析 ...通过以上分析,我们可以看到,百度面试题涵盖了从概率题到数据库索引、再到Session管理等多个领域的问题,旨在全面考察应聘者的逻辑思维能力、计算机基础知识以及对实际应用场景的理解。

    阿里面试题 腾讯面试题 百度面试题 华为面试题 京东面试题 头条面试题 经典面试题 程序员 IT经理 项目经理 面试题

    阿里面试20题 百度面试10题 华为面试10题 京东面试13题 腾讯面试37题 头条面试10题 项目经理面试常遇问题 经典面试题 程序员 IT经理 项目经理 面试题 研发经理 高级程序员 经典面试题

    excel + 数据分析 + 百度面试题

    excel + 数据分析 + 百度面试题

    百度面试题之桶中取球(咖啡罐问题的变形)

    ### 百度面试题之桶中取球(咖啡罐问题的变形) #### 一、题目背景及概述 在IT行业的面试中,经常会遇到一些看似与技术实现无关但实际上考验着求职者逻辑思维能力和数学基础的问题。这类问题往往能够帮助面试官...

Global site tag (gtag.js) - Google Analytics