Hom*_*mam 0 c# algorithm multidimensional-array
我想要一种方法来获得二维数组的唯一ID.例如:
数组A:
[4,2,3]
[4,5,6]
[7,8,9]
Run Code Online (Sandbox Code Playgroud)
数组B:
[9,2,3]
[4,5,6]
[1,1,9]
Run Code Online (Sandbox Code Playgroud)
我想要一个函数知道A <> B而不保存整个A和整个B.
提前致谢
好吧,要获得有保证的唯一值,您将有效地保存数组的完整内容.您可以使用散列来告诉您一个阵列是否可能与另一个阵列相同,但如果没有无损转换,则无法获得唯一性.
作为简单散列函数的示例:
int hash = 17;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
hash = hash * 31 + array[i, j];
}
}
return hash;
Run Code Online (Sandbox Code Playgroud)
现在,两个不同的数组很可能会有不同的哈希 - 但它们可能不会.
您愿意花多少空间在ID上,以及阵列中每个值有多大?您愿意在ID中添加的信息越多,您获得误报的可能性就越小......直到您进入ID与阵列一样大的阶段,此时您可以确保您'会都没有,当然误报.
| 归档时间: |
|
| 查看次数: |
1449 次 |
| 最近记录: |