几个开关管一盏灯

用调侃去书写思考,以故事来叙述理论。
打印 被阅读次数


       榕城老应

我的朋友在家里装了三个开关,各处都能随意开关这盏灯。心中得意,便出了道题来考我们。

我一听,很牛逼地回说:“这问题我在中学时就考虑过。答案是:在串行的线路上,两头各一个单刀双掷的开关中间是两条并行线路,只要在中间加双刀双掷的开关改变并行线路的连接,要加多少个每个都能单独控制灯光。用有限自动机的状态图来说明这个问题,虽然是牛刀小用,但大约也能说得清。”

下午从Lowe's 买东西回来。上网一看,追问来了:“请证明,不能用多于2个单刀双掷开关(Single Post Double Throw, SPDT)来实现电灯电路。”原来这才是真正的问题!

原本以为给了一个实现,再扣上“有限自动机的状态图”大帽子就能蒙过去,谁知他也不是个省油的灯。
 
沿着有限自动机的状态图的思路想一下,这牛刀太大了,用它解题纯粹给自个儿找不痛快。果然他是狡猾,狡猾的人都不好忽悠。

找来原来的帖子看了两遍,蒙到他的思路了。这说的是在几种开关的有限制选择中最小实现的问题。不用牛刀了,用逻辑在这里列出来。

1. 要每个开关都能控制,若是有与开关并联的线,它就管不着了,有电断不开,所以这个开关系统必须是串联的。串联,单掷开关肯定不行。一个断开了其他的都没戏了。这“开关”只有两种控制量自然是指“双掷”的开关了。
 
2. 我们考虑串联的双掷开关系统。解的集合必须在这里。双掷的开关,最简单的是单刀双掷(SPDT),其次是双刀双掷(DPDT)。SPDT一头单线端,一头双线端,开关转换单线端与双线端其一的连接。DPDT可以转换进出各两条线之间的连接。
 
3. 考虑从火线端到控制端顺序的串连系统。SPDT在这串连的线路中,单线端只能接在系统一根线且必须是带电的串连线路中,不然就无法将电通往后面,所以它必须是第一个。双线端只能接在线路至多两条线的线路中,多了线,就不受这开关控制。SPDT双线端接在线路后,另一端是单线端,它的状态不带电时就无法让后面的开关来开灯,所以它只能是系统的最后一个。因此在这串连系统中最多只能有两个SPDT开关,在两开关间有两并行线。第一个SPDT控制火线接往两并行线的哪一根,第二个SPDT控制将电灯线接向两并行线的其中一根。所以它们各自都能控制通断。

4. 如果我们到这里还没有一个n开关的实现,就很容易想到用DPDT开关在这串连系统中,转换两根并行线的连接。因为其中的每个都能将这两根并行线的带电状态转换一下,所以也就都能参加控制,这便是一个且是唯一的实现。

登录后才可评论.