做过最有意思的交互题

做过最有意思的交互题

一栋楼,楼外有n盏灯,楼内有n个开关,灯和开关一 一对应,但是开始并不知道哪个开关对应那盏灯。

现在你有一种操作是:打开若干开关,然后去楼外面看看哪些灯亮了。

问如何在30次操作之内,得到所有200000盏灯和开关的对应关系。

思路:考虑按照二进制位来开灯,第一次操作把编号二进制第1位为1的灯打开,第二次操作把编号二进制第2位为1的灯打开. 这样记录某盏灯分别在第几次亮了就能得到他对应的编号了。 比如第一盏灯在第1,2,5次亮了, 那么它对应的开关编号是10011,就是19.

 

你可能感兴趣的:(小知识点)