2008-05-11から1日間の記事一覧

問題2-67〜68

Huffman符号化木に関する問題を解いています。可変長の符号をどのように定義して、decode/encodeをどのような処理で表現するのか、という点に面白味を感じました。以下は、本書に掲載されていた、Huffman木を作成する手続きと、decodeの手続きです。 (define…

問題2-69〜70

まずは、Huffman符号化木を生成するための手続きを書きます。以下は、本書に掲載されていた例文で、記号とその重み付けの組み合わせリストから、Huffman-treeの葉の要素の並びを生成するロジックです。 (define (adjoin-set x set) (cond ((null? set) (list…

問題2-71〜72

Huffman-treeを構成している記号が任意の数の場合、そこから生成される符号の大きさにどのような分布が見られるかを調べます。(問題2-71) (define 5-symbols '((a 1) (b 2) (c 4) (d 8) (e 16))) (encode '(a) (generate-huffman-tree 5-symbols)) ;=>(0 0 0…