我的目标是将单词转换为唯一标识符(数字)。
"WORD"=> X(例如)
但是要应用的数学(或其他方法)公式必须是确定性、传递性,并且字符顺序很重要
例如,让我们将 transform
定义为数学函数的名称,例如:
转换(“WORD”)=> X
规则/目标:
必须是确定性的:
如果
transform
("WORD") => X 那么transform
公式必须总是返回 X。所以transform
公式不能是例如“变量的内存地址”。传递性(可选,出于性能目的最好有)
如果
转换
("WORD") => X 然后tranform
("WORDS") => Y 其中 Y > X。顺序很重要
tranform
("WORD") 必须不同于tranform
("ROWD")
有什么想法/方法吗?
我已经尝试过以下方法,但它不正确:
Ascii字符编码
转换
("WORD") = 87+79+82+68 = 316转换
("ROWD") = 82+79+87+68 = 316所以规则 3 不成立
最佳答案
假设使用 ASCII,您可以简单地将每个字符解释为 [0, 128] 上的数字。
那么你的话就是 base-128 中的数字。
您的传递要求未指定,但这种方法至少在字长上是传递的。
关于string - 将单词转换为唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33768761/