Zstd/Zlib 压缩是双射的吗?

Is Zstd/Zlib compression bijective?

这更像是一个概念性问题,但如果我有一个文件 A 和一个文件 B, 如果 A != B,Compressed(A) 是否有可能等于 Compressed(B)。此外,如果 A 和 B 的压缩表示匹配,A 和 B 是否保证匹配?

问题似乎与双射无关。

如果对于给定的File A,这些算法可能是双射的,如果只有一个Compressed(A)可能。

显然不是这样的:只是玩压缩级别,你有多个不同版本的 Compressed(A),它们解压缩回相同的 File A。所以它不是 bijection.

然而,另一个方向是有保证的:一个给定的 Compressed(something) 可以重新生成一个并且只有一个 something。并且由于压缩是无损的,它保证如果Compressed(A) == Compressed(B),那么必然A == B

但不要将其与双射混淆。当 A == B 时,它不会遵循 Compressed(A) == Compressed(B),因为它们可能被不同地压缩(使用不同的压缩级别或其他高级参数)。