一页概览
- 核心问题:只能看到灯泡的亮与灭,如何读懂一段文字?
- 核心方法:用有限状态 + 二进制 + 编码表完成“发送—接收”闭环。
- 最终产出:一套可解释的编码规则,以及可复现的实验流程。
问题背景
现在有两个房间:一个放开关,一个放灯泡。开关可以控制灯泡的亮与灭。
两个小朋友在不同房间:阿果在开关房,小红在灯泡房。他们不能见面,也不能直接说话。
阿果想用开关给小红发送文字,比如 你好。这条信息不是固定的,阿果也可以发 today is a good day。
小红只能看到灯泡不停亮灭,但她需要理解阿果的文字。
阿果和小红到底是怎么做到的?
项目目标
设计一套“可解释、可复用”的发送与接收系统。
系统包含四个模块:
- 信息发送装置(开关组)
- 信息接收装置(灯泡组)
- 电源与控制电路(保证开关能点亮灯泡)
- 编码表(把文字变成灯泡状态)
完成的标准如下:
- 发送方可自由发送文字(不是预设内容)
- 接收方能按规则正确解读
- 全过程可被完整解释
项目结构
我写了一个项目手册,用来引导思考。关键步骤如下:
- 点亮一个灯泡:搭建最简电路,用一个开关控制亮灭。
- 发送一个“字符”:用亮灭状态表示一个符号。
- 点亮多个灯泡:复制电路,形成多位状态。
- 发送更多文字:需要一张编码表;拼音编码很方便。
- 降低复杂度:灯泡太多会失控,引入二进制减少数量。
- 编码与解码:按照编码表完成发送与接收。
注意:这不是说明书,你不需要逐步照做。它的作用是启发思考。
关键思考
- 一个灯泡能表示两种状态:亮和灭。那么两个灯泡能表示几种状态?五个灯泡呢?
- 如何用方便的记号来表示灯泡的状态?
- 如何把灯泡的状态跟“信息”联系起来?
参考示例
下面这个东西,就是我实现的短信发送装置。
总的来说,这个项目非常有意思。我家小孩玩得很开心。装置做好后我给他发了两个字,他对着编码表查了半天,发现原来是 "sb",气得大叫,骂我臭爸爸。