正如上一个问题所得出的那样,我一直在把里曼假设作为休闲数学问题。在此过程中,我进行了一次非常有趣的重现,并且对它的名称,它的减少以及它对于质数之间的可解性的可处理性感到好奇。
简而言之,我们可以将每个素数之间的间隔定义为先前候选素数的重复出现。例如,对于我们的基数,下一个质数将是:
或者,正如我们通过绘制此图所看到的:。
我们可以通过评估向前重复的每个候选素数来对素数重复该过程。假设我们要获得下一个质数。我们的候选函数变为:p 2
哪里:
,如上所述。
可以很容易地看到每个组件函数仅在整数值上变为零,并且同样容易展示如何通过利用三角函数系统中的加法和乘法属性巧妙地捕获我们的AND和XOR形关系。方程。
重复变为:
...整个问题取决于我们是否可以在多项式时间内对此函数求运算符。这实际上是对Eratosthenes筛的概括。
有效的Python代码来演示重现性:
from math import cos,pi
def cosProduct(x,p):
""" Handles the cosine product in a handy single function """
ret = 1.0
for k in xrange(2,p+1):
ret *= -cos(2*pi*(x+k-1)/p)+1.0
return ret
def nthPrime(n):
""" Generates the nth prime, where n is a zero-based integer """
# Preconditions: n must be an integer greater than -1
if not isinstance(n,int) or n < 0:
raise ValueError("n must be an integer greater than -1")
# Base case: the 0th prime is 2, 0th function vacuous
if n == 0:
return 2,lambda x: 0
# Get the preceding evaluation
p_nMinusOne,fn_nMinusOne = nthPrime(n-1)
# Define the function for the Nth prime
fn_n = lambda x: fn_nMinusOne(x) + cosProduct(x,p_nMinusOne)
# Evaluate it (I need a solver here if it's tractable!)
for k in xrange(p_nMinusOne+1,int(p_nMinusOne**2.718281828)):
if fn_n(k) == 0:
p_n = k
break
# Return the Nth prime and its function
return p_n,fn_n
一个简单的例子:
>>> [nthPrime(i)[0] for i in range(20)]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71]
问题是,无论从数学角度还是作为计算机科学家,我现在都无法自拔。具体而言,我无法胜任傅立叶分析,定义统一的覆盖物或总体上具有复杂的平面,而且我担心这种方法要么是完全错误的,要么是对3SAT问题隐瞒的恐怖,将其提升为NP完整性。
因此,我在这里有三个问题:
- 鉴于上述简短的重复性,是否可以确定性地计算或估计多项式时间和空间中零点的位置?
- 如果是这样,如果不是,它是否隐藏了其他任何使多时或多时解决方案难以解决的子问题?
- 并且,如果通过奇迹(1)和(2)坚持下去,您将从高层上在满足这种重复性方面进行哪些动态编程改进?显然,通过多个函数在相同整数上进行迭代是微不足道的,而且非常浪费。