公布答案:号称微软面试题
没看到题目的看这儿。
答案:
3个灯:假设为A,B,C,开关为a,b,c
开a,等一段,然后关a,开b,去摸两个不亮灯泡的温度。冷者对应c,热者对应a,余者对应a。
4个灯:假设A,B,C,D,开关为a,b,c,d
开ab,等一段,关a开c。
冷、灭:d
冷、亮:c
热、灭:a
热、亮:b
分析
这个题目同时考察生活常识和对于二进制的理解。更简单地说,就是需要对每一个灯实施编码。由于亮、灭只有1bit的信息,因此只能区分两个灯;要区分3个或4个灯,必须引入另一个bit(当然,前提是这种属性可以被编码为1和0)。
思考:如果要区分5个灯,是否有解?