13 種類のデータのセットから 13 の数字を描画しています。各種類には 4 つのアイテムがあるため、合計 52 アイテムです。項目に 1、2、3、4、5、6、7、8、9、10、11、12、13 の番号を付けることができるので、4 つの "1"、4"2"、... 4 になります。 「13」セット。セットから引き出される 13 の数字はランダムです。プロセス全体が 100 万回またはそれ以上繰り返されるため、13 の数値を効率的に格納する方法が必要です。何らかのコーディング方法を使用して、13 個の整数をビットに圧縮することを考えていました。たとえば、「1」、「2」の数を数えます...まず、各アイテムのカウントを 2 ビットでコーディングし、さらに 1 ビットを使用して、アイテムが描画されたかどうかを示します。したがって、アイテムごとに 3 ビットが必要で、合計 13 アイテムのコストは 39 ビットです。そのためには8バイトが必要です。しかし、数百万回または数十億回の計算について話していて、各セットを後でファイルに保存する必要があるため、それでも多すぎます。したがって、8 バイトを使用する場合でも、データ用に約 80 GB を要求します。ただし、それを半分に減らすことができれば、40GB 節約できます。この構造をより効率的に圧縮する方法はありますか? 代わりに 5 バイトを使用することも考えていますが、異なるタイプの数値 (1 つの int + 1 つの文字) を処理する必要があるのではなく、C++ のライブラリでコーディング/圧縮を簡単に行うことができますか? この構造をより効率的に圧縮する方法はありますか? 代わりに 5 バイトを使用することも考えていますが、異なるタイプの数値 (1 つの int + 1 つの文字) を処理する必要があるのではなく、C++ のライブラリでコーディング/圧縮を簡単に行うことができますか? この構造をより効率的に圧縮する方法はありますか? 代わりに 5 バイトを使用することも考えていますが、異なるタイプの数値 (1 つの int + 1 つの文字) を処理する必要があるのではなく、C++ のライブラリでコーディング/圧縮を簡単に行うことができますか?
ありがとう。