A | 00000 |
---|---|
B | 00001 |
C | 00010 |
D | 00011 |
E | 00100 |
F | 00101 |
G | 00110 |
H | 00111 |
I | 01000 |
J | 01001 |
K | 01010 |
L | 01011 |
M | 01100 |
N | 01101 |
O | 01110 |
P | 01111 |
Q | 10000 |
R | 10001 |
S | 10010 |
T | 10011 |
U | 1010 |
V | 1011 |
W | 1100 |
X | 1101 |
Y | 1110 |
Z | 1111 |
モジュール詳細:青色ハフマン暗号
色はレイブンクローだけど、発音はハッフルパフに似てるよね。
モジュールは、3つのディスプレー、キーボード、左右の矢印、及び現在のページを表示するボタン(送信ボタン)で構成されている。
矢印を使用してページを移動することができる。ページは全部で2ページある。
モジュールを解除するには、以下の3ステップに従って単語を復号する。復号された単語を取得したら、キーボードを使用して入力する。入力を開始すると、ディスプレーが空白になり、下のディスプレーに現在入力されている内容が表示される。
入力を消去するには、いずれかの矢印をクリックする。
入力に問題がなければ、「SUB」と書かれたボタンを押して、回答を送信する。
ステップ1:ハフマン木の構築
このステップでは、1ページ目の上、中央、下のディスプレー上にあるすべての英字と2ページ目の上と中央のディスプレーの英字を(この順番で)使用する。これにより、26文字のコードを取得する。英字をアルファベット上の位置の数字に変換し、26個の「スコア」のリストを獲得する。一番目のスコアをA,二番目のスコアをB,...と対応させていき、これをZまで繰り返す。
得点が最も低い2項目を見つける。複数ある場合、リスト内の先頭にある方を選ぶ。リストの末尾に、2項目のスコアの和をそのスコアとする新たな項目を作成する。新たな項目は二分木になっており、左の子の節がスコアの最も低い項目(同点の場合はより先頭にある項目)、右の子の節がもう片方となる。元の2項目をリストから削除する。
これを25回繰り返し、リストを圧縮して1つの二分木にする。
次のページに、このステップの一例が図示されている。
ステップ2:暗号化二分探索
2ページの3つ目のディスプレーにある暗号化された単語を、各文字を右の表のバイナリコードに置き換え、1つのバイナリ文字列に変換する。