nextProbablePrime()的准确性与输入值的大小有关吗?

时间:2012-03-31 14:12:12

标签: java hashtable primes biginteger

我在家庭作业中使用BigInteger的nextProbablePrime来计算下一个素数我可以用来调整使用二次探测的哈希表的大小。

该表存储从文件读入的数据项。我给出的示例文件只包含100个项目,但我不能假设这是我的程序将要测试的最大数据集。

我想知道我传递给nextProbablePrime的值的大小与它正确返回素数的可能性之间是否存在任何关系?换句话说,是否有一个数字低于nextProbablePrime保证准确?我依靠它是否合理?

3 个答案:

答案 0 :(得分:2)

由于“此方法返回的数字是复合的概率不超过2^-100”,我认为假设依赖它返回素数是合理的。

答案 1 :(得分:0)

nextProbablePrime()实际上用于加密操作,这些操作需要找到(确实)大量的数字,这些数字可能是最重要的"。 nextProbablePrime()方法返回一个素数为2 ^ -100的数字。

我不认为这种方法对您的需求有用。对于合理的数字(如散列表的大小),您可以使用简单的自制实现来检查数字是否为素数,尤其是在需要高性能的情况下。

答案 2 :(得分:0)

这对你的目的很好。

最好是使用预先计算的哈希表大小列表。你可能只需要六打左右;根据哈希表的预期大小进行选择,如果加载因子变得太大,则增长。

总的教训是采用所有可能的方法来降低代码的复杂性。你正在写一个哈希表。您无需担心素数。