我有一个二维数组的字母。任何字母都可能因某个字母而异。 我想根据字母及其位置为这个数组创建一个唯一的键。 例如,如果数组为3 * 3且字母为{0,a,b,c,*},则数组可以采用以下形式:
0 b c
b * a
a a 0
我已经为所有r和c尝试了Key = sum(code(letter)*(r*3+c))
,其中r和c是行和列,但它仍然为我提供了不同数组形式的相同键。
我想念什么?
P.S。 code(letter)
是一个映射函数,用于将字母转换为值。
答案 0 :(得分:3)
您需要考虑字母表的大小。如果代码和索引都是零,那么它将是:
key = Sum(code(letter)*pow(L, r*C+c))
其中L是字母数,C是列数。但请注意数字溢出。对于较大的字母或矩阵,您需要使用以下之一: