Zstd / Zlib压缩是双射的吗?

问题描述 投票:0回答:1

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

zlib zstd
1个回答
1
投票

问题似乎不是关于双射。

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.