このN番目のプライム再発の(in)tractabilityの証明


18

前の質問から次のように、私はレクリエーション数学の問題としてリーマン仮説で遊んでいます。その過程で、私はかなり興味深い再発に至りました。そして、その名前、その縮約、素数間のギャップの可解性に対する扱いやすさについて興味があります。

簡潔に言えば、各素数間のギャップを、先行する素数候補の繰り返しとして定義できます。たとえば、ベースが場合、次の素数は次のようになります。p0=2

p1=min{x>p0cos(2π(x+1)/p0)+1=0)}

それとも、私たちはで見るように、このアウトをプロットp1=3

順方向に繰り返される各素数候補を評価することにより、n素数に対してプロセスを繰り返すことができます。次の素数p_2を取得するとしますp2。候補関数は次のようになります。

p2=min{x>p1fp1(x)+((cos(2π(x+1)/p1)+1)(cos(2π(x+2)/p1)+1))=0}

どこ:

fp1(x)=cos(2π(x+1)/p0)+1(上記のとおり)。

各コンポーネント関数が整数値でのみゼロになることは簡単にわかります。また、三角関数システムのコンテキストで加算と乗算のプロパティを活用することにより、これがANDおよびXOR形の関係を巧みにキャプチャする方法を簡単に示すことができます。方程式。

再発は次のようになります。

fp0=0p0=2fpn(x)=fpn1(x)+k=2pn1(cos(2π(x+k1)/pn1)+1)pn=min{x>pn1fpn(x)=0}

...問題全体は、多項式時間でこの関数のmin演算子を評価できるかどうかにかかっています。これは、事実上、エラトステネスのふるいの一般化です。

繰り返しを示す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完全性。

したがって、ここで3つの質問があります。

  1. 上記の簡潔な繰り返しを考えると、多項式の時間と空間におけるゼロの位置を決定論的に計算または推定することは可能ですか?
  2. そうであるか、そうでない場合、ポリタイムまたはポリスペースソリューションを扱いにくいものにする他のサブ問題を隠していますか?
  3. 奇跡(1)と(2)が続いた場合、この再発を満足させるために、高レベルからどのような動的プログラミングの改善を行いますか?明らかに、複数の関数を介した同じ整数に対する反復は、洗練されておらず、非常に無駄です。

そして、私のテキストの壁にもかかわらず、まだここにいる人たちのために:これがリーマン・ゼータにそれ自体を減らして、それによって同じ複雑さを与えるどう、私は確信がありません。しかし、そうだとは思わない。
MrGomez

1
1)どのタグが必要ですか?それらを使用するだけで、自分で作成できます。2)一般的な定義、つまり何ですか?3)1週間ほど経ってもこれに関する回答が得られない場合は、cstheory.SEに移動してください。ff(pn)
ラファエル

1
あなたの投稿のすべてをフォローしているわけではありません。NPではなくNP完全を意味すると思います。一般に、数論関数がNP完全であることを証明することは、削減のためのガジェットを設計できる組み合わせ構造を欠いている/隠すことが多いため、非常に難しい作業です。
カヴェー

1
改訂が完了しました。他にも潜んでいる問題は必ずありますが、私の元々の表現はかなり外れていました。24時間若い自分に相談して、適切な定義について復習する必要があります。いずれにせよ、これまでの忍耐と編集に感謝します。現在のタグも今では満足しています。:)f(x)
MrGomez

に関しては、すべての小さな数ではなく、すべての小さな素数を「チェック」するだけでは不十分ですか f
ラファエル

回答:


1

次の論文は、PRIMESがPにあることを示しています(2006年にゲーデル賞も受賞しました)。

http://www.cse.iitk.ac.in/users/manindra/algebra/primality_v6.pdf

N番目の素数最小化手順の解をAKS PRIMESアルゴリズム(モジュロ減算)に設定することにより、再帰関係の扱いやすい解を効果的に得ることができます(プライムギャップが再帰関係によって与えられることを証明できる場合)。

ソースコードはインターネットで見つけることができます。私はそれらを個人的にチェックしなかったので、私は彼らをここで指していません。

ただし、すべての数値をチェックするための上限がある場合があります...n


1
Rosettacodeページの名前は完全に間違っています。これはAKSの素数性テストではなく、n未満のすべての整数による試行除算の修正です。一方、素数がPにあることに注意し、それが元の質問に光を当てるかどうかを確認することは、質問する価値があります。
DanaJ 14

良い点...私は...それを修正します
user13675

1
Pの素数は、多項式時間で決定論的に素数を生成できることを意味しません。これはハードオープンな問題です。(は、入力サイズが指数関数です。)nlgn
Kaveh 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.