我在家庭作业中使用BigInteger的nextProbablePrime来计算下一个素数我可以用来调整使用二次探测的哈希表的大小。
该表存储从文件读入的数据项。我给出的示例文件只包含100个项目,但我不能假设这是我的程序将要测试的最大数据集。
我想知道我传递给nextProbablePrime的值的大小与它正确返回素数的可能性之间是否存在任何关系?换句话说,是否有一个数字低于nextProbablePrime保证准确?我依靠它是否合理?
答案 0 :(得分:2)
由于“此方法返回的数字是复合的概率不超过2^-100
”,我认为假设依赖它返回素数是合理的。
答案 1 :(得分:0)
nextProbablePrime()实际上用于加密操作,这些操作需要找到(确实)大量的数字,这些数字可能是最重要的"。 nextProbablePrime()方法返回一个素数为2 ^ -100的数字。
我不认为这种方法对您的需求有用。对于合理的数字(如散列表的大小),您可以使用简单的自制实现来检查数字是否为素数,尤其是在需要高性能的情况下。
答案 2 :(得分:0)
这对你的目的很好。
最好是使用预先计算的哈希表大小列表。你可能只需要六打左右;根据哈希表的预期大小进行选择,如果加载因子变得太大,则增长。
总的教训是采用所有可能的方法来降低代码的复杂性。你正在写一个哈希表。您无需担心素数。