圧縮/解凍アルゴリズム
昔考えた圧縮/解凍アルゴリズム。
# 特許が切れたので公開 (嘘)。
■ この圧縮/解凍アルゴリズムの特徴
- 任意のファイルの内容を 32 bit 整数一個 に圧縮可能。
- 但し不可逆圧縮。テキスト ファイル向き。
■ 圧縮/解凍アルゴリズム
- 道行くサラリーマンを一人つかまえて、ファイルの中身を読み聞かせる。
- その人に電話番号を聞いて数字としてメモしておく。
- 復元したくなったら、メモしておいた数字で電話を掛けて「あの時私何て言いましたっけ」と聞く。
- 多分正確には覚えちゃいないだろうから「不可逆」。
■ 高品質版 (サービス パック 1)
- 道行くサラリーマンを一人つかまえて、ファイルの中身を読み聞かせる。
を以下に差し替え。
- 道行く東大出ていそうな若いサラリーマンを一人つかまえて、ファイルの中身を読み聞かせる。
■ セキュリティ パッチ (サービス パック 2)
- その人に電話番号を聞いて数字としてメモしておく。
を以下に差し替え。
- その人に電話番号を聞いて数字としてメモしておく。但しそれが電話番号である事は実の親にも明かさない。
# 現在 C#/.NET で実装中 (嘘)。
ディスカッション
コメント一覧
たのし♪ストーリーが全部メタファ。
public int Compress(Street s, string story)
{
ProcessManager m = ProcessManager.Instance();
SalariedWorker w = m.Catch(s);
w.Memorize(story);
m.WritePhoneBook(w.PhoneNo);
return w.PhoneNo;
}
public string Extract(int keyOfMemory)
{
ProcessManager m = ProcessManager.Instance();
SalariedWorker w = m.MakePhoneCall(keyOfMemory);
return m.AskWhatISaid(w);
}
何をやってるんだ、私は(笑)
実装どうもです。
こういうさりげないプログラム (謎) にも、センスの良さが出ますね。