- 433 名前:暇人13世 ◆tAo.kQ2STk mailto:sage [2006/12/29(金) 00:48:59 ]
- 思いついた。
まず配列に圧縮するデータを1bitづつ入れて、配列a[]とする。 変数iを設け、初期値0とする。 a[i]が0ならiを進めまくる。a[i]が1になるまで。 a[i]からa[a.lenght]までに0がなければ終了する。 a[i]が1ならa[i]からa[a.lenght]までをローテートする。a[i]が0になるまで。 この時のiの値と、回した回数を記録する。 結果的に配列a[]は0000.....00001111.....1111という配列になるので、最後に0の数と1の数を記録する。 解凍は、逆の計算を行えば出来るはず。 実装面倒なので誰かテスト頼む。つーか既にあったら教えてくれ。名前。
|

|