簡潔符号化とは? わかりやすく解説

簡潔符号化

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/29 13:54 UTC 版)

二分木」の記事における「簡潔符号化」の解説

簡潔データ構造情報理論求められる最小領域のみを消費するデータ構造である。 n {\displaystyle n} 個のノードを持つ異なった二分木個数C n {\displaystyle \mathrm {C} _{n}} 、即ち n {\displaystyle n} 番目のカタラン数である(構造が同じ木は同一のものと見なす)。 n {\displaystyle n} が十分大きくなると、これは 4 n {\displaystyle 4^{n}} 程度になる。従って、それらを符号化するには少なくとも log 24 n = 2 n {\displaystyle \log _{2}4^{n}=2n} bit 程度が必要となる。よって、簡潔二分木ノードあたり 2bit だけを消費するものでなければならない。 この条件を満たす簡単な表現法は、行きがけ順にノード舐め内部ノードなら1、なら0を出力する方法である(ここで「」はデータ含まないものを指す)。木にデータ含まれるなら(例え前記Pascalの例で、dataフィールド中身が空でないなら)、それらを次々配列中に格納していけばいい。 次のような関数用いる: function EncodeSuccinct(node n, bitstring structure, array data) { if (n = nil) then structure最後に 0 を追加する else structure最後に 1 を追加する data最後に n.data を追加する EncodeSuccinct(n.left, structure, data) EncodeSuccinct(n.right, structure, data)} stringデータ structure最終的に 2 n + 1 {\displaystyle 2n+1} bit になるにすぎない。ここで n {\displaystyle n} は内部ノードの数である。structureデータ長さすら記録する必要がない次の関数実行すれば情報が全く失われていないことがわかるだろう。これはstringデータから二分木再構築する: function DecodeSuccinct(bitstring structure, array data) { structure最初ビット取り除き、そのビットを b に入れる if ( b = 1 ) then 新しノード n を作る data最初要素取り除き、その要素を n.data に入れる n.left = DecodeSuccinct(structure, data) n.right = DecodeSuccinct(structure, data) n を返す else nil返す} 更に洗練された簡潔表現用いると、木構造をより小さく表現できるだけでなく、簡潔さ保ったまま、より便利な操作もできるようになる

※この「簡潔符号化」の解説は、「二分木」の解説の一部です。
「簡潔符号化」を含む「二分木」の記事については、「二分木」の概要を参照ください。

ウィキペディア小見出し辞書の「簡潔符号化」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「簡潔符号化」の関連用語

1
4% |||||

簡潔符号化のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



簡潔符号化のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの二分木 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS