next up previous
Next: A. 古典 (文書) の電子化 Up: 情報処理II 第6回 情報の電子化 (2) Previous: 1.3 awk

2 レポート課題4

〆切は 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/ に あるテキスト・ファイル以外のテキストを探して入手し (その方法も説明せよ)、 同じような解析を行なえ。

「可能性について考えよ」ではつまらないので、 余裕と興味のある人は 試しに解読に挑戦して下さい。

angou.txt
こうやって作った
cat もとのテキスト | /usr/ucb/tr A-Z $XXXXXXXXXXXXXXXXXXXXXXXXXX$ | /usr/ucb/tr a-z $xxxxxxxxxxxxxxxxxxxxxxxxxx$ > angou.txt

のようにして作った (``$XXX\cdots XXX$'', ``$xxx\cdots xxx$'' はそれぞれ、 ``ABCDEFGHIJKLMNOPQRSTUVWXYZ'', ``abcdefghijklmnopqrstuvwxyz'' を並べ替えて作った文字列である)。 元に戻すには、
こうやれば解読できる
cat angou.txt | /usr/ucb/tr $XXXXXXXXXXXXXXXXXXXXXXXXXX$ A-Z | /usr/ucb/tr $xxxxxxxxxxxxxxxxxxxxxxxxxx$ 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) 復号化するためのコマンド (要するに $XXX\cdots XXX$, $xxx\cdots xxx$ は何かということ) を報告してください。


next up previous
Next: A. 古典 (文書) の電子化 Up: 情報処理II 第6回 情報の電子化 (2) Previous: 1.3 awk
Masashi Katsurada
平成20年10月18日