为双散列表大小选择的最佳素数是什么?
侧面信息
- 哈希表是单词分析项目的一部分,马尔可夫模型,训练机器人来建模和生成文本,就好像其他人会写一样(这需要很多单词、句子、成绩单、书籍……语料库越大,更好的)
- 我不熟悉围绕素数的大部分数学,但我会阅读你们提出的所有建议,然后尝试从那里开始
我的想法是:
- 素数不应该太远/彼此接近---->我不必经常增加大小,但哈希表最终不会半空(更少的冲突,寻找理想的比例负载因子和哈希表大小)
- 最适合大型语料库 - 我不确定我必须选择的素数应该有多大,以前从未这样做过......
- 我还想过实现一个函数(不是哈希函数),它只是将哈希表的大小加倍,然后寻找最接近的素数 ------> 但它的运行时间为 O(n)因为素数只能被自身整除____(我必须检查直到当前哈希表大小的两倍的所有数字是否具有除零以外的余数,然后将大小加一/转到下一个奇数并再次测试整个循环)________ ------> 您可以想象这会非常慢,因此更好的方法是使用一组固定的素数,最多可达一百万(仅用于说明目的)左右,然后将它们用于任何尺寸更改
谢谢,任何其他问题表示赞赏