Next: A. 古典 (文書) の電子化
Up: 情報処理II 第6回 情報の電子化 (2)
Previous: 1.3 awk
〆切は 6 月11日 (水曜)。
Subject は「情報処理II課題4」とすること。
- 課題4
- 英文中のアルファベットの出現頻度は `e' が一番高く、
その次は… などと言われ、
古典的な推理小説9の暗号10の話の種になったりしている。
Gutenberg Project の中のテキストで、そのことを確かめて見よ。手作業では
なく、なるべくコンピューターにやらせること。テキストごとに大きな違いが
あるか? 文字が別の記号に置き換えられた場合、出現頻度情報から解読するこ
との可能性について考えよ (要するに他の文字の出現頻度はどの程度まで一定
しているのか調べる -- 実際に試してみると良いのだけど)。
なお、文字の頻度を調べる hindo.c というプロ
グラムを用意した11。(このプログラムは文字の出現頻度順には表示しないが、
sort を使えば簡単に頻度順に並べられる。どうすればいいか?今回
説明した話の簡単な応用である。)
hindo.c のコンパイルと使用例 |
isc-xas06% gcc -o hindo hindo.c |
|
isc-xas06% cat hindo.c | ./hindo |
|
|
テキスト、あるいは作家ごとに単語の使用頻度の癖のようなものがあると思
われるが、そのことを Gutenberg テキストで実際に調べてみよ。ルイス・キャ
ロルとマークトウェインの書いたものにどの程度の差があるか?
また、できれば ~re00018/gutenberg/ に
あるテキスト・ファイル以外のテキストを探して入手し (その方法も説明せよ)、
同じような解析を行なえ。
「可能性について考えよ」ではつまらないので、
余裕と興味のある人は
試しに解読に挑戦して下さい。
は
こうやって作った |
cat もとのテキスト | /usr/ucb/tr A-Z
| /usr/ucb/tr a-z
> angou.txt
|
のようにして作った (``'', ``'' はそれぞれ、
``ABCDEFGHIJKLMNOPQRSTUVWXYZ'',
``abcdefghijklmnopqrstuvwxyz'' を並べ替えて作った文字列である)。
元に戻すには、
こうやれば解読できる |
cat angou.txt | /usr/ucb/tr
A-Z
| /usr/ucb/tr
a-z > angou.txt
|
試してみたいのならば
「不思議の国のアリス」で試す |
isc-xas05%
cp -pr ~re00018/sample-angou
isc-xas05%
cd sample-angou
isc-xas05%
head -30 sample-angou.txt
isc-xas05%
head -30 sample-angou.txt | ./decode1.sh
isc-xas05%
cat decode1.sh
isc-xas05%
cat encode1.sh
|
解読に成功した人は、(1) 文章のタイトル (本当は ``THE'' がついているけれ
どヒントになるので省きました)、(2) 復号化するためのコマンド (要するに
, は何かということ) を報告してください。
Next: A. 古典 (文書) の電子化
Up: 情報処理II 第6回 情報の電子化 (2)
Previous: 1.3 awk
Masashi Katsurada
平成20年10月18日