温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

100灯泡围圈通亮问题

发布时间:2020-07-23 23:05:25 来源:网络 阅读:595 作者:刺激乐天派 栏目:编程语言

问题描述

有一百个灯泡,围成一个圈。每个灯泡有一个开关。如果一个灯被打开或者关闭,那么它相邻的两个灯泡状态会与原状态相反(亮变暗,暗变亮)。请问是否存在一种操作方式可以把这一百个灯泡打开(都处于亮的状态)。

分析

1.将一百个等编号【1-100】,设置亮为1,暗为0,初始都为0
2.从1号灯泡开始打开,每次隔着前一次按下编号的两个灯按,N=3n-2 (n表示第n次打开灯泡),这样一直按下去,直到只有99号灯不亮 为止,一共需要按33次。
3.这个时候唯一可以操作的就是把99号灯打开,那么98,100号灯就都灭了,再打开98号灯,那么99就灭了,97号灯也灭了,这个时候,97灭了,98亮,99,100都灭的,其他都是亮的。那么由此可以推出,只要一直这样往前推,直到1号灯变暗,99,100变暗,然后就可以按下100号灯就可以把所有灯都打开了。

推导过程

因为这个100个灯泡有些多,如果我们要进行推论的话,使用一个与100等效的小规模更为适合,这里我们使用的是10个灯泡,将规模整数倍缩小为原来的十分之一。如果说10个灯泡可以都按亮,那么100个同理都可以按亮。请看下面的Excel表格的推导演示。

100灯泡围圈通亮问题

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI