พิสูจน์ความสามารถในการรองรับของการเกิดซ้ำครั้งที่ N


18

ดังต่อไปนี้จากคำถามก่อนหน้านี้ฉันเล่นกับสมมติฐานของ Riemannว่าเป็นเรื่องของคณิตศาสตร์เชิงนันทนาการ ในกระบวนการนี้ฉันได้เกิดขึ้นอีกครั้งที่น่าสนใจและฉันอยากรู้ชื่อของมันการลดลงของมัน

เราสามารถกำหนดช่องว่างระหว่างหมายเลขเฉพาะแต่ละรายการเป็นการเกิดซ้ำของช่วงเวลาก่อนหน้าผู้สมัคร ตัวอย่างเช่นสำหรับฐานพี0=2ของเราไพรม์ถัดไปจะเป็น:

พี1=นาที{x>พี0|-cos(2π(x+1)/พี0)+1=0)}

หรือที่เราเห็นจากพล็อตนี้ออก : พี1=33

เราสามารถทำขั้นตอนซ้ำสำหรับn primes โดยการประเมินผู้สมัครที่สำคัญแต่ละคน สมมติว่าเราต้องการที่จะได้รับต่อไปที่สำคัญP_2พี2ฟังก์ชั่นผู้สมัครของเรากลายเป็น:

พี2=นาที{x>พี1|พี1(x)+((-cos(2π(x+1)/p1)+1)(cos(2π(x+2)/p1)+1))=0}

ที่ไหน:

พี1(x)=-cos(2π(x+1)/พี0)+1ข้างต้น

เป็นเรื่องง่ายที่จะเห็นว่าแต่ละองค์ประกอบของฟังก์ชั่นจะกลายเป็นศูนย์ในค่าจำนวนเต็มและมันก็ง่ายที่จะแสดงให้เห็นว่าสิ่งนี้ดึงดูดความสัมพันธ์ของเรากับรูป - และ XOR อย่างชาญฉลาดโดยใช้ประโยชน์จากคุณสมบัติของการบวกและการคูณในบริบทของระบบตรีโกณมิติ สมการ

การเกิดซ้ำจะกลายเป็น:

พี0=0พี0=2พีn(x)=พีn-1(x)+Πk=2พีn-1(-cos(2π(x+k-1)/พีn-1)+1)พีn=นาที{x>พีn-1|พีn(x)=0}

... โดยที่ปัญหาทั้งหมดขึ้นอยู่กับว่าเราสามารถประเมินตัวดำเนินการนาทีผ่านฟังก์ชันนี้ในเวลาพหุนาม นี่คือผลลักษณะทั่วไปของตะแกรงของ 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 ที่ยกระดับให้ เอ็นพีบริบูรณ์

ดังนั้นฉันมีสามคำถามที่นี่:

  1. จากการสรุปซ้ำของฉันข้างต้นเป็นไปได้หรือไม่ที่จะคำนวณหรือกำหนดตำแหน่งของศูนย์ในเวลาและพื้นที่พหุนาม
  2. ถ้าเป็นเช่นนั้นหรือไม่ไม่มันซ่อนปัญหาย่อยอื่น ๆที่จะทำให้โซลูชั่น polytime หรือ polyspace รักษาไม่หายใช่หรือไม่?
  3. และถ้าหากมีปาฏิหาริย์ (1) และ (2) หยุดยั้งการปรับปรุงการเขียนโปรแกรมแบบไดนามิกคุณจะทำอย่างไรในการตอบสนองการกลับเป็นซ้ำจากระดับสูง? เห็นได้ชัดว่าการวนซ้ำของจำนวนเต็มเดียวกันผ่านหลายฟังก์ชั่นนั้นไม่เหมาะสมและค่อนข้างสิ้นเปลือง

และสำหรับผู้ที่ยังคงอยู่ที่นี่แม้จะมีกำแพงข้อความของฉัน: ฉันไม่แน่ใจว่าสิ่งนี้จะลดตัวเองลงในซีตารีมันน์หรือไม่ ฉันไม่เชื่อว่ามันจะเป็นเช่นนั้น
MrGomez

1
(พีn)

1
ฉันไม่ได้ติดตามทุกสิ่งในโพสต์ของคุณ ฉันเดาว่าคุณหมายถึง NP-complete ไม่ใช่ NP โดยทั่วไปแล้วการพิสูจน์ว่าฟังก์ชันเชิงทฤษฎีเชิงตัวเลขนั้นเป็นปัญหาที่ค่อนข้างสมบูรณ์เนื่องจากพวกเขามักจะขาด / ซ่อนโครงสร้าง combinatorial ใด ๆ ที่จะช่วยให้เราสามารถออกแบบอุปกรณ์สำหรับการลด
Kaveh

1
(x)

คำตอบ:


1

เอกสารต่อไปนี้แสดงให้เห็นว่า PRIMES อยู่ใน P (นอกจากนี้ยังได้รับรางวัลGödelในปี 2549):

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

ด้วยการตั้งค่าวิธีแก้ปัญหาของการลดขนาดไพรม์ Nth ให้เป็นอัลกอริทึม AKS PRIMES (การลบแบบโมดูโล) เราอาจได้รับการแก้ไขได้อย่างมีประสิทธิภาพกับความสัมพันธ์ที่เกิดซ้ำ (ถ้าคุณสามารถพิสูจน์ได้ว่าช่องว่างที่สำคัญนั้น

รหัสที่มาสามารถพบได้บนอินเทอร์เน็ต ฉันไม่ได้ชี้ไปที่พวกเขาที่นี่เพราะฉันไม่ได้ตรวจสอบพวกเขาเป็นการส่วนตัว

n


1
หน้า Rosettacode ถูกตั้งชื่อผิดอย่างสมบูรณ์ นี่ไม่ใช่การทดสอบแบบดั้งเดิมของ AKS และเป็นการทบทวนการหารทดลองโดยจำนวนเต็มทั้งหมดที่น้อยกว่า n ในทางกลับกันการสังเกตว่า primality นั้นอยู่ใน P และดูว่าสิ่งที่ทำให้เกิดความกระจ่างเกี่ยวกับคำถามดั้งเดิมนั้นมีค่าหรือไม่
DanaJ

จุดดี ... ฉันจะแก้ไข ...
user13675

1
nLGn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.