我正在尝试在Python中实现以下算法[1]:
问题:(行压缩)让
方法:(哈希)将
我不明白如何在Python中哈希一行?
好的,我想了解“将A的行哈希到表中”是什么意思。我的理解是这样的。假设我有一个像这样的矩阵:
问题:(行压缩)让
A
成为一个有界度数d的n x m
数组(即,A
的每个元素都是一个整数a
,满足0<a<d
),并且令k
为A
的不同行数。找到一个k x m
数组A'
,使得A
的每一行都出现在A'
中。方法:(哈希)将
A
的行哈希到表中,跳过重复项并将其余项添加到A'
中。我不明白如何在Python中哈希一行?
好的,我想了解“将A的行哈希到表中”是什么意思。我的理解是这样的。假设我有一个像这样的矩阵:
A = [[1, 2, 3, 4],
[1, 2, 3, 4],
[6, 7, 5, 4]]
因此,我对它的行进行哈希处理(以某种方式),然后得到:
B = [x1, x2, x3]
其中xi
是行i
的哈希值。因为行1和行2相等,所以我会得到x1=x2
。既然我得到了x1=x2
,我将保留一个,并最终得到:
A' = [[1, 2, 3, 4],
[6, 7, 5, 4]]
我是正确的吗?如果是,我该如何在Python中实现这样的算法?
谢谢。
[1] D. Comer,“使用Tries删除有界度数组的重复行”,普渡大学,1977年。