ดังต่อไปนี้จากคำถามก่อนหน้านี้ฉันเล่นกับสมมติฐานของ Riemannว่าเป็นเรื่องของคณิตศาสตร์เชิงนันทนาการ ในกระบวนการนี้ฉันได้เกิดขึ้นอีกครั้งที่น่าสนใจและฉันอยากรู้ชื่อของมันการลดลงของมัน
เราสามารถกำหนดช่องว่างระหว่างหมายเลขเฉพาะแต่ละรายการเป็นการเกิดซ้ำของช่วงเวลาก่อนหน้าผู้สมัคร ตัวอย่างเช่นสำหรับฐานของเราไพรม์ถัดไปจะเป็น:
หรือที่เราเห็นจากพล็อตนี้ออก : 3
เราสามารถทำขั้นตอนซ้ำสำหรับ primes โดยการประเมินผู้สมัครที่สำคัญแต่ละคน สมมติว่าเราต้องการที่จะได้รับต่อไปที่สำคัญP_2ฟังก์ชั่นผู้สมัครของเรากลายเป็น:
ที่ไหน:
ข้างต้น
เป็นเรื่องง่ายที่จะเห็นว่าแต่ละองค์ประกอบของฟังก์ชั่นจะกลายเป็นศูนย์ในค่าจำนวนเต็มและมันก็ง่ายที่จะแสดงให้เห็นว่าสิ่งนี้ดึงดูดความสัมพันธ์ของเรากับรูป - และ 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 ที่ยกระดับให้ เอ็นพีบริบูรณ์
ดังนั้นฉันมีสามคำถามที่นี่:
- จากการสรุปซ้ำของฉันข้างต้นเป็นไปได้หรือไม่ที่จะคำนวณหรือกำหนดตำแหน่งของศูนย์ในเวลาและพื้นที่พหุนาม
- ถ้าเป็นเช่นนั้นหรือไม่ไม่มันซ่อนปัญหาย่อยอื่น ๆที่จะทำให้โซลูชั่น polytime หรือ polyspace รักษาไม่หายใช่หรือไม่?
- และถ้าหากมีปาฏิหาริย์ (1) และ (2) หยุดยั้งการปรับปรุงการเขียนโปรแกรมแบบไดนามิกคุณจะทำอย่างไรในการตอบสนองการกลับเป็นซ้ำจากระดับสูง? เห็นได้ชัดว่าการวนซ้ำของจำนวนเต็มเดียวกันผ่านหลายฟังก์ชั่นนั้นไม่เหมาะสมและค่อนข้างสิ้นเปลือง