解説
データ圧縮は、情報を失わずにデータ量を減らす技術です。最もシンプルな方法の一つが「ランレングス符号化(RLE)」で、同じ値が連続する部分を「値とその個数」で表します。
例えば AAAABBB は A4B3 と書けます。14文字が10文字になり、約3割小さくなりました。FAXや単純な画像などで実際に使われています。
圧縮するコードと、元に戻す(展開する)コードの両方を書きます。復元結果が元と完全に一致すれば、情報を失わない可逆圧縮が成立しています。
書き方
ランレングス符号化(RLE): 連続する同じ値を「値+個数」にまとめる可逆圧縮。 ・文字列[i] でインデックス参照、len(文字列) で文字数。 ・隣どうしを比較し、違ったら 文字 + str(個数) を連結して圧縮文字列を作る。 ・展開: range(0, len, 2) で2文字ずつ取り、文字 * 個数 でくり返して復元。 ・復元結果 == 元データ で可逆(情報を失わない)ことを確認。
書いて動かす
この回の課題
連続文字を「文字+個数」にまとめてランレングス圧縮し、それを展開して元データと完全に一致する(可逆圧縮)ことを確かめよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。