gpt4 book ai didi

sql - 是否有一种算法可以对两个文本进行编码,即使改变它们的位置,结果也会相同?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:07:48 25 4
gpt4 key购买 nike

可能是题目比​​较难理解,我是这个意思

给定两个示例文本

Text1 = "abc" and Text2 = "def"

哪种算法可以做到这一点

encoding(Text1, Text2) == encoding(Text2, Text1)

而且我希望函数的结果是唯一的(不像在另一个校验和算法中那样与编码(Text3,Text1)重复。

实际上,这的根源是我想在我的数据库中搜索问题是否有任何行“谁是 B 的 friend ”或“B 是谁的 friend ”通过仅搜索一列

SELECT * FROM relationship WHERE hash = "a039813"

不是

SELECT *
FROM relationship
WHERE (personColumn1 = "B" and verb = "friend") OR
(personColumn2 = "B" and verb = "friend")

最佳答案

您可以调整任何编码以确保 encoding(Text1, Text2) == encoding(Text2, Text1) 通过简单地强制执行参数的特定顺序。由于您正在处理文本,因此可以使用基本的词汇顺序:

encoding_adapter(t1, t2)
{
if (t1 < t2)
return encoding(t1, t2)
else
return encoding(t2, t1)
}

如果您使用简单的单输入散列函数,您可能会想这样写:

encoding(t1, t2)
{
return hash(t1 + t2)
}

但这会导致冲突:encoding("AA", "B") == encoding("A", "AB")。有几个简单的解决方案:

  • 如果您有一个从未出现在您的输入字符串中的字符或字符串,请将其用作分隔符:

返回散列(t1 + 分隔符 + t2)

  • 散列散列:

返回哈希(哈希(t1)+哈希(t2))

关于sql - 是否有一种算法可以对两个文本进行编码,即使改变它们的位置,结果也会相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com