- 締切済み
データを圧縮したい
0或いは1が512個連続するビットパターンがあります。 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 のようなのです。 これを eYLfJXkQiS6{m"mMtI;|l"dajI.| YBCy/`usySwXm7n95(ad#oj6m7K5A:kRY5SC.)4}EvHND5R8a まで圧縮できました。 もっと圧縮する方法はありますか? テキストファイル(データ)しばりでお願いします。 これぞという回答お待ちしています。
- みんなの回答 (16)
- 専門家の回答
みんなの回答
- ts3m-ickw
- ベストアンサー率43% (1248/2897)
補足やお礼を読む限り、質問内容がおかしいとしか思えないんだけど、 1はビットではなく「1」ってアスキー文字なのね? (連続するビットパターンじゃ無いね) であれば、ランレングス圧縮を使えば 512(2バイト)「1」(1バイト)で合計3バイトにできます。
0が512個 これで4bitです。
- drum_KT
- ベストアンサー率43% (1108/2554)
ちなみに、データパターンが「0が512個」または「1が512個」の2種類しかなく、それをテキスト文字で表せば良いのであれば、1文字で表現できます。 「0が512個」=「0」、「1が512個」=「1」とすれば良いだけなので。 「テキストで」という縛りがなければ、1ビットで表現できます。
お礼
>ちなみに、データパターンが「0が512個」または「1が512個」の2種類しかなく、 当然ちがいます。全パターンありえます。
補足
だから全部テキストなんですけど。
No.1補足 >テキストなんですが。 意味不明です。質問文の >ビットパターン と合いません。 >もっと圧縮する方法はありますか? 圧縮伸張ルールを自分で決めてよいなら例えば 0が512個 1が512個 と現せば 8 バイトに圧縮できます。
補足
#2の補足みてください
- drum_KT
- ベストアンサー率43% (1108/2554)
「アスキーテキストの」「0或いは1が512個連続する」もののことを「ビットパターン」とは言いません。 設問を勘違いしているのでは?
補足
用語でもめる気はありません。 全部テキストしばりでお願いします。 入力も出力もテキストということです。
- drum_KT
- ベストアンサー率43% (1108/2554)
>eYLfJXkQiS6{m"mMtI;|l"dajI.| YBCy/`usySwXm7n95(ad#oj6m7K5A:kRY5SC.)4}EvHND5R8a これ、全然圧縮されていないどころか膨張してますよね? >0或いは1が512個連続するビットパターン 512ビットは64バイトです。一方、「eYLF…」は、改行部分がCRLFかLFだけかわかりませんが、最低78バイトになっています。
補足
テキストなんですが。
- 1
- 2
補足
>1はビットではなく「1」ってアスキー文字なのね? そうですテキストです >512(2バイト)「1」(1バイト)で合計3バイトにできます。 0か1がランダムに出現する512個のアスキー文字でも3バイトで済みますか?