string - 将单词转换为唯一标识符

标签 string algorithm math mathematical-optimization symbolic-math

我的目标是将单词转换为唯一标识符(数字)。

"WORD"=> X(例如)

但是要应用的数学(或其他方法)公式必须是确定性传递性,并且字符顺序很重要

例如,让我们将 transform 定义为数学函数的名称,例如:

转换(“WORD”)=> X

规则/目标:

  1. 必须是确定性的:

    如果 transform("WORD") => X 那么 transform 公式必须总是返回 X。所以 transform 公式不能是例如“变量的内存地址”。

  2. 传递性(可选,出于性能目的最好有)

    如果 转换("WORD") => X 然后 tranform("WORDS") => Y 其中 Y > X。

  3. 顺序很重要

    tranform("WORD") 必须不同于tranform("ROWD")

有什么想法/方法吗?

我已经尝试过以下方法,但它不正确:

  1. 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/

相关文章:

algorithm - 在线算法上绘制箭头

javascript - 如何使用 JavaScript 从自定义字符中提取字符串?

android - 将 String 转换为 Double 以便在 LatLng/Google map 中使用

c - 将 {tempStr} 的内容移动到 Load Runner 中的 char str[]

c - 调用函数后指向 B 树根节点的指针开始指向子节点(应该继续指向根节点)

python - 获取范围内集合的端点

C - 将字符添加到字符串的开头

algorithm - 正式验证算法的正确性

algorithm - 如何检查给定数字 N, N^2 是否可以表示为两个非零整数的平方和?

c++ - 从 double 到 unsigned int 的转换