Field guide / 觀察紀錄 No. 04
把原理,
放進手裡試試。
數字可以點亮,字母可以移動,路線可以比較。跟著四份野外筆記,親手觀察資訊如何改變。
每次只改一個條件,看看結果發生了什麼。
八盞燈,一個數字
OBSERVE THE BITS
每盞燈有自己的「重量」。把亮著的重量加起來,就是這組二進位的數值。
點一下 0/1 切換;鍵盤可用 Tab 選取、空白鍵切換。
0 = 0
位元(bit)只有 0、1 兩種狀態。8 位元能表示 0~255。十六進位用 0~9、A~F 表示一位;A 代表 10、F 代表 15。
字母的環島旅行
TURN THE ALPHABET
把英文字母往後推幾格,Z 之後繞回 A。反方向推同樣的格數,就能回到原文。
請輸入 −25~25 的整數。
A → D · Z → C保留大小寫、中文、空格與標點
凱撒位移(Caesar shift)是固定偏移字母表的替換方式。這裡只移動 A~Z、a~z;它適合觀察編碼,不能用來保護真實秘密。
一樣是 0,不同是 1
SPOT THE DIFFERENCE
讓兩列位元一對一比對。XOR 不做進位,只在每一格回答:「你們不一樣嗎?」
每列輸入 4 個 0 或 1。縮短時保留右側位元,加長時在左側補 0。
0 ⊕ 0 = 01 ⊕ 1 = 00 ⊕ 1 = 11 ⊕ 0 = 1
互斥或(XOR,符號 ⊕)在輸入不同時輸出 1。試著把 B 改成全 0:A 會保留下來。若兩列相同,結果就是全 0。
從 A 出發,找到 F
FOLLOW THE SHORTEST PATH
路上的數字代表距離,所有路段都能雙向通行。每次選出目前距離最小、尚未確定的地點,再看看能不能替鄰居找到更近的路。
本步選取已確定待比較
操作:按「下一步」逐步觀察;「上一步」可以重看。所有按鈕可用 Tab 與 Enter 操作。
DIJKSTRA / 觀察步驟0 / 6
| 地點 | 距離 | 經由 | 狀態 |
|---|
節點是地點,邊是連接地點的路段,權重是路段距離。Dijkstra 演算法適用於沒有負權重的圖;當一個節點被確定,就找到了到它的最短距離。∞ 表示目前還沒有找到路線。