一张正方形的可以旋转的桌子,每个角上有一个坑,坑中各放一只杯子,杯子口可以朝上或朝下,但四只杯子各自的初始状态未知。 现在蒙住测试者的双眼,旋转桌子,当桌子停止转动后,测试者可以伸手摸任意两只杯子,得知它们的状态,并任意决定是否翻转它们(即每次可以翻转0只、1只或2只杯子),但测试者一旦选定了要触摸的杯子,就不能更改。之后,再次旋转桌子.....,直到所有杯子口全部朝上或全部朝下。问:测试者最多经过多少次旋转就可以确保游戏结束。答案(把后面选中就看到了):5次,不过,更重要的是如何操作
posted on 2007-06-08 10:36 局部变量 阅读(1963) 评论(2) 编辑 收藏
我的解法最多可能需要6步,看看是否能再优化 1.置一对相邻角为1 2.置一对对角为1 此时状态为三个1一个0 3.检查一对相邻角 a 有一个0->置其为1 算法结束 b 都为1->置其中一个为0 此时状态可能为10 10 或者 10 01 4.检查一对对角 a 相等->将其翻转,算法结束 b 不相等->5 5.翻转一对相邻角,转4
5步: 1.置一对相邻角为1 2.置一对对角为1 此时状态为三个1一个0 3.检查一对对角 a 有一个0->置其为1 算法结束 b 都为1->置其中一个为0 4.检查一对相邻角 a 相等->将其翻转,算法结束 b 不相等->将其翻转 5.翻转一对对角
Copyright © 局部变量