gpt4 book ai didi

ruby - 如何将一段文本可逆地压缩成更少的 ASCII 字符?

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:54 27 4
gpt4 key购买 nike

我想获取任意的 ASCII 文本字符串,例如“Hello world”,并将其压缩为字符数较少(尽可能少)的版本,但要采用可以解压缩的方式。压缩版本应仅由 ascii 字符组成。有没有一种方法可以做到这一点,尤其是在 Ruby 中?

最佳答案

如果知道只会使用ASCII字符,那就是每个字节的低7位。通过位操作,您可以将每 8 个字节混合成 7 个字节(节省 12.5%)。如果您可以将其放入更小的范围(仅限 64 个有效字符),则可以删除另一个字节。

但是,因为您希望压缩形式也只包含 ASCII 字符,所以会丢失一个字节 - 除非您的输入可以限制为 64 个字符(例如,有损压缩将某些字符替换为其他字符,否则返回到第一个字节,仅以小写等形式存储)。

如果您的字符串不大 (>1k),那么由于 header 的大小,使用 gzip/bzip2 等可以节省最少的钱。如果您有一个预定义的字典用作霍夫曼表,您可能会得到一些压缩,但在其他情况下,可能相对于原始文本变得臃肿

之前关于 SO 的讨论 An efficient compression algorithm for short text strings

关于ruby - 如何将一段文本可逆地压缩成更少的 ASCII 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4812311/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com