0

我正在使用以一般稀疏格式(压缩行)存储的稀疏矩阵。即我存储矩阵:

0 x y 0
0 0 0 0 
z 0 0 0

形式为:

  • 矩阵尺寸:[3,4]
  • 每行的偏移量:[0,2,2,3]
  • 每个非零条目的列:[1,2,0]
  • 非零元素:[x,y,z]

我正在寻找允许我“缓存”稀疏模式的哈希函数(即上面带有整数的前三个向量)。为此,我想我需要一个好的哈希函数,我可以将它提供给我计划使用的哈希映射实现,即 C++ 的std::unordered_map.

有没有人有一些关于如何为这样的问题找到一个好的散列函数的提示?

4

1 回答 1

2

如果您的 CSR 表示每个矩阵都是唯一的,即非零元素以从左到右、从上到下的顺序出现,那么您可以散列所有向量并使用boost::hash_combine(如果您不希望依赖Boost,只需复制粘贴它,它很短)。

于 2012-05-17T15:12:31.587 回答