c++ - 在这种情况下我的压缩率可以低于 6.25% 吗?

标签 c++ compression

我有一个文本文件,其中包含仅由两个字符组合而成的长文本。

有什么方法可以将它们压缩到小于 6.25% 的压缩率?

我不想使用任何库或某些函数,但是
我想要一些公式或算法来完成这项工作。
一个想法是我的问题的最佳答案。

P.S :- 实际上我正在尝试自己创建一个,但我对此一无所知。不管是什么,我都拿着笔和笔记本坐着,并试图自己完成。

最佳答案

压缩率直接取决于文件的内容。例如,一个仅包含 0N 次的文件可以使用 log_2(N) 位进行压缩(您只需指定它有多少个零包含)。从技术上讲,压缩率最多等于源的香农熵,因为您可能认为您的文件包含由某个随机源生成的符号。

因此,除非您知道文件的结构并且可以使用一些额外的信息,否则无法保证压缩率低于某个阈值。如果您对结构一无所知,并且您的文件只包含随机的 0 和 1,则无法压缩它(在这种情况下,熵仅为 1)。

参见例如this link了解更多详情。您绝对应该阅读一些介绍性的信息论,否则重新发明轮子可能会非常乏味。

关于c++ - 在这种情况下我的压缩率可以低于 6.25% 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30443311/

相关文章:

c++ - 一条规则使用 BOOST_FUSION_ADAPT_STRUCT 时出现精神业力语法问题

c++ - 如何从 native win32 C++ 应用程序获取当前实例的可执行文件名?

Imagemagick:如何减小具有大静态区域的动画 GIF 的大小?

android - 从android中的存档中解压单个文件

c++ - 绘制大量重叠的二维阴影

c++ - 单击窗口 - 然后会发生什么?

matlab - 可通过 matlab 解释的 C++ 简单压缩算法

c++ - 在 C++ 中创建 zip 存档

c++ - 这是 g++ bug、libc bug,还是我疯了(或者也许这三个)?

iphone - zlib iPhone - 文件一开始就很糟糕