情報に関する理論(全41問中26問目)
No.26解説へ
文字列中で同じ文字が繰り返される場合,繰返し部分をその反復回数と文字の組に置き換えて文字列を短くする方法はどれか。
出典:平成21年春期 問 4
- EBCDIC符号
- 巡回符号
- ハフマン符号
- ランレングス符号化
広告
解説
ランレングス符号化とは、ある連続したデータを、そのデータ一つ分と連続した長さで表現することで圧縮する方法です。
例えば、「AAAAABBBBBBBBBAAA」は「A5B9A3」と表せます。これは、Aが5回続き、そのあとにBが9回、そしてAが3回続いていることを表していています(連続回数を、元のデータを表す符号の前に記録することもある。その場合、符号化した後は「5A9B3A」と表される)。
さらに、データがこの2種類(AとB)だけで、最初にAが来ることにしておけば、「593」だけで表せます。このルールに従ったときにBが最初に見つかった場合は、最初にAが0回連続していることにすれば良いことになります。例えば、「BBBAAAAABBBBBAAA」は「03553」で表せます。
例えば、「AAAAABBBBBBBBBAAA」は「A5B9A3」と表せます。これは、Aが5回続き、そのあとにBが9回、そしてAが3回続いていることを表していています(連続回数を、元のデータを表す符号の前に記録することもある。その場合、符号化した後は「5A9B3A」と表される)。
さらに、データがこの2種類(AとB)だけで、最初にAが来ることにしておけば、「593」だけで表せます。このルールに従ったときにBが最初に見つかった場合は、最初にAが0回連続していることにすれば良いことになります。例えば、「BBBAAAAABBBBBAAA」は「03553」で表せます。
広告