gpt4 book ai didi

algorithm - 如何有效地存储具有高度冗余值的矩阵

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:19:17 24 4
gpt4 key购买 nike

我有一个非常大的矩阵(100M 行乘以 100M 列),其中有很多彼此相邻的重复值。例如:

8 8 8 8 8 8 8 8 8 8 8 8 8
8 4 8 8 1 1 1 1 1 8 8 8 8
8 4 8 8 1 1 1 1 1 8 8 8 8
8 4 8 8 1 1 1 1 1 8 8 8 8
8 4 8 8 1 1 1 1 1 8 8 8 8
8 4 8 8 1 1 1 1 1 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8 8 8
8 8 3 3 3 3 3 3 3 3 3 3 3

我想要一个数据结构/算法来尽可能紧凑地存储这些矩阵。例如,上面的矩阵应该只占用 O(1) 空间(即使矩阵被拉伸(stretch)任意大),因为只有恒定数量的矩形区域,每个区域只有一个值。

重复发生在行和列之间,因此逐行压缩矩阵的简单方法不够好。 (这至少需要 O(num_rows) 空间来存储任何矩阵。)

矩阵的表示也需要逐行访问,这样我就可以对列向量进行矩阵乘法。

最佳答案

您可以将矩阵存储为 quadtree叶子包含单个值。将此视为值(value)的二维“运行”。

关于algorithm - 如何有效地存储具有高度冗余值的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3098907/

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