可靠地(过度)估计区间[m,n]中素数的公式?

问题描述 投票:1回答:1

[相当长一段时间以来,我已经成功使用了一个简单的函数,该函数可靠地(过度)估计了给定n的质数,例如分配空间来容纳质数。现在,我正在寻找对interval [m,n]中的质数数目做相同的事情。

目标是尽可能接近实际素数,以最大程度地减少内存浪费,但永远不要过低低估实际数,因为这将意味着代价高昂的调整大小/重新分配。

这是我一直在使用的功能:

double overestimate_prime_count_up_to (double n)
{
    if (n < 137)
        return 32;
    else
        return 32 + (n / (Math.Log(n) - 1.08513));
}

ATM仅通过了32位范围的认证,但我打算对此进行更改。

无论如何,现在我正在寻找一种方法来对给定间隔[m,n]中的质数数目进行类似的估计,而不是对不大于n的所有质数进行估计。

如果可以找到最大为n的素数的可靠underestimate

,则可以通过减去n的(低)估计值来构造区间[m,n]的可靠高估。下边界从上边界的(过度)估计开始。

自然,低估只是解决方案的想法;我们的目标仍然是对区间内的质数数目进行可靠的(高估),以便尽可能减少浪费的空间,而从不为低估付出代价(或至少如此以至于没有关系)总体)。

[我已经在一流的How Many Primes Are There?网站上研究了Prime Pages页,紧随其后的链接和阅读了许多论文。但是它所做的只是让我的头游泳...

P.S .:非常欢迎对将可用性扩展到64位范围的评论,特别是因为这很可能需要区分更多情况或什至完全不同的策略(例如近似素数密度函数)。

[相当长一段时间以来,我已经成功使用了一个简单的函数,该函数可靠地(过度)估计了给定n的质数,例如分配空间来容纳质数。现在我正在寻找...

math primes discrete-mathematics number-theory sieve
1个回答
0
投票

您可以做的一件事情是,首先先计算n≤55时素数小于或等于n的素数的确切值(基本上只是[[2, 55]然后您可以使用以下estimates by B. Rosser

© www.soinside.com 2019 - 2024. All rights reserved.