我试图找到或提出一种算法,该算法对输入执行散列以生成两个或三个单词的输出。
例如:
“WXYZ” - > “好奇的橡子”
算法需要
我有一个想法是使用普通的哈希函数来创建哈希值,然后使用前几个字符来选择单词:
但我不确定一个好的查找算法是什么(用于在我的表中的所有单词之间进行均匀分布)以及这是否满足我的上述要求。
答案 0 :(得分:2)
对于小于 2 -k 的碰撞概率,您希望大约 2 2k 位由birthday paradox引起的熵。这样可以粗略估计字典中对于给定数量的单词需要多少单词,反之亦然。
您建议的方法看起来很合理:使用一个好的标准哈希函数,然后,对于大小 n 的字典,只需使用第一个 log 2 ( n)第一个字的散列的位,第二个字的下一个 log 2 (n)位。