是否可以对"compressed"整数进行简单的算术(例如加法)?
Is it possible to do simple arithmetic (e.g. addition) on "compressed" integers?
我想压缩一个整数数组,初始化为0,使用一种尚未确定的整数压缩/解压缩方法。
是否有可能使用一些整数压缩方法来精确地使用C或c++来增加(+1)压缩整数数组的特定元素?
在所有常见的压缩技术中,有两种技术在没有完整的解压缩循环的情况下具有潜在的可用性。
首先,专门为此构建了稀疏数组。使用稀疏数组,通常存储索引到值的映射。您不存储未被修改的数组元素,因此如果数组的大部分为0,则不需要存储它。模拟中的许多数组(和矩阵)都是稀疏的,并且有大量的文献。在这里,添加一个值只是简单地使用[]访问索引并自增-访问将创建如果不存在的话。
接下来,如果您发现您正在处理相同数字的大序列,但是这些"运行"并不都是相同的数字,那么运行长度编码也可以工作。由于它们不相同,稀疏数组将不起作用,RLE是一个解决方案。增加一个数字不像稀疏那么容易,但基本上,如果不是运行,您可以添加并检查是否可以进行新的运行。如果是跑步的一部分,你可以分开跑。RLE通常只对可视化数据或某些数学模式有意义。
你当然可以实现这个,如果你的增量方法:
- 解压整个数组。
- 增加所需条目。
- 再次压缩整个数组
如果你想以一种不那么愚蠢的方式增加,你需要对压缩过程有深入的了解,所以我们会给你更多的帮助
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 一种在C++中读取TXT配置文件的简单方法
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 关于 c++ 函数中指针赋值的简单问题
- 从函数返回任意简单类型的数据
- 如何在没有函数的情况下编写此代码并使C++更简单?
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 是否可以对"compressed"整数进行简单的算术(例如加法)?