回答:
エントロピーと呼ばれる概念になります。ウィキペディアを参照してください。
基本的な考え方は、常にファイルを小さくできる圧縮操作が存在する場合、その圧縮操作はすべてのファイルを0バイトに減らし、すべてのデータを保持できることをロジックが決定するというものです。しかし、これはばかげています。なぜなら、0バイトでは情報をまったく伝達できないことがわかっているからです。そのため、入力を常に小さくする圧縮アルゴリズムが存在しないことが証明されました。その場合、情報は0バイトで保存できますが、0バイトは情報がないことを意味するため、 tには情報がなく、すべての情報が同時にあります。したがって、それはばかげている。
この理論的概念により、これまでに使用したすべての圧縮プログラムは 、一部の入力のサイズを増やします(せいぜい同じサイズを維持します)。つまり、設計または使用する圧縮アルゴリズムには、特定の入力が小さくなりますが、そうでない入力もあります。
ほとんどのロスレス圧縮アルゴリズムは同じ理論原理に基づいているため、すでに圧縮されたデータは一般に、さらなる圧縮のひどい候補です。あるも、さらに悪い圧縮データを圧縮することが可能。しかし、これは、元のデータから最適なアルゴリズムを使用して単純に圧縮するよりも効率的ではありません。
たとえば、100 MBのテキストファイルがあり、通常のZipアルゴリズムを使用して圧縮すると、50 MBに圧縮される可能性があります。次に、ZZファイルをLZMA2で圧縮すると、LZMAのほとんどの圧縮可能なデータの圧縮率はZipよりも高いため、40または45 MBに圧縮される可能性があります。したがって、Zipはすべてのエントロピーを完全に吸い込むわけではないため、Zipデータを圧縮することもできます。ただし、Zipコンテナーを完全に削除する場合は、LZMA2で生テキストを圧縮することでさらに小さくできる可能性があります。 。
圧縮しようとしているバイナリの場合、7-Zipファイル形式は独自の内部構造を作成し、既に圧縮された実行可能ファイルのデータを7-Zip形式にパックする必要があるため、サイズが大きくなります。これには、辞書、ファイルヘッダーなどが含まれます。これらの余分なデータは通常、データ自体の圧縮の節約によって相殺されますが、圧縮しようとしている実行可能ファイルはLZMAの何らかの形式で既に圧縮されているようです。そうしないと、実行可能ファイルのサイズが2 MB(大量)増加するのではなく、実行可能ファイルのサイズが縮小されるか、わずかに増加する可能性があります。
2^(n+1)-1
サイズがnビット以下のメッセージが考えられます。アルゴリズムは、これらのそれぞれを一意の出力にマッピングする必要があります。これらのいずれかがビット数の少ない値にマッピングされる場合、別の値は必ずビット数の多い値にマッピングされる必要があります。
7zで使用される基礎となる圧縮アルゴリズムはロスレスです。つまり、ファイルを何度も繰り返し圧縮/解凍することができます。さらに、各反復の後、ファイルはまったく同じままになります。
残念ながら、ロスレス圧縮アルゴリズムが何度も適用され、常に良い結果が得られるとは期待できません。飛び越えることのできない厳しい境界があります。おおよそ、この境界は入力シーケンスがランダムデータをどれだけ密接にアンサンブルするかに依存します。何よりも、ロスレスアルゴリズムは、ファイル圧縮、インターネットHTMLデータ転送、バックアップ、および出力ファイルがまったく同じ元の入力ファイルに解凍されることを期待するその他の操作に使用されます。
ロスレス圧縮とは対照的に、ロスフル(またはロッシー)圧縮アルゴリズムを使用した圧縮後は、常にファイルサイズの減少が予想されます。欠点は、1回の圧縮/解凍の反復後に元のファイルを正確に復元できないことです。これらのアルゴリズムは、オーディオ/ビデオ/画像の送信と保存で最も有名です。
7z形式で使用されるbzip2、LZMA、LZMA2およびその他のアルゴリズムはすべてロスレスです。そのため、制限を超えると圧縮できなくなります。さらに、実行可能イメージ(.exe)は通常、高度に圧縮されたファイルです。他の多くの圧縮ツールと同様に7zipにはメタデータが埋め込まれているため、実際には出力ファイルが大きくなる可能性があります。
この場合、圧縮ファイルが入力ファイルよりも小さいことが常にわかるはずです。なぜできないのか、以下のコメントをご覧ください。