この記事では9層のzipファイルについて言及しているため、一連のゼロを圧縮するという単純なケースではありません。なぜ9、なぜそれぞれ10個のファイルなのか?
まず、ウィキペディアの記事では、現在5つのレイヤーにそれぞれ16個のファイルがあると述べています。不一致がどこから来ているのかはわかりませんが、それだけではありません。本当の問題は、そもそもなぜネストを使うのかということです。
DEFLATEは、zipファイル*で唯一サポートされている圧縮方法であり、最大圧縮率は1032です。これは、1〜3バイトの繰り返しシーケンスに対して漸近的に実現できます。zipファイルに対して何をしても、DEFLATEのみを使用している限り、解凍されたサイズは元のzipファイルのサイズの最大1032倍になります。
したがって、本当に法外な圧縮率を実現するには、ネストされたzipファイルを使用する必要があります。2層の圧縮がある場合、最大比率は1032 ^ 2 = 1065024になります。3の場合、1099104768となります。42.zipで使用される5つのレイヤーの場合、理論的な最大圧縮率は1170572956434432です。ご覧のとおり、実際の42.zipはそのレベルとはかけ離れています。その一部はzip形式のオーバーヘッドであり、一部は気にしなかっただけです。
推測しなければならないのですが、42.zipは、大きな空のファイルを作成し、それを繰り返し圧縮してコピーすることで作成されたと言えます。フォーマットの制限を押し上げたり、圧縮などを最大化したりする試みはありません。レイヤーごとに16個のコピーを任意に選択しただけです。ポイントは、大きな労力をかけずに大きなペイロードを作成することでした。
注:bzip2などの他の圧縮形式では、最大圧縮率がはるかに高くなります。ただし、ほとんどのzipパーサーはそれらを受け入れません。
PSそれ自体のコピーに解凍するzipファイルを作成することが可能です(クイン)。自分自身の複数のコピーに解凍するものを作成することもできます。したがって、ファイルを再帰的に永久に解凍すると、可能な最大サイズは無限になります。唯一の制限は、反復ごとに最大で1032増加できることです。
PPS 1032の図では、zip内のファイルデータがばらばらであると想定しています。zipファイル形式の特徴の1つは、アーカイブ内のファイルとファイルデータへのオフセットをリストする中央ディレクトリがあることです。同じデータを指す複数のファイルエントリを作成すると、ネストを行わなくてもはるかに高い圧縮率を実現できますが、そのようなzipファイルはパーサーによって拒否される可能性があります。