Là xác định nếu có một số nguyên tố trong một khoảng được biết là trong P hoặc NP-đầy đủ?


13

Tôi đã thấy từ bài đăng này trên stackoverflow rằng có một số thuật toán tương đối nhanh để sàng một khoảng số để xem liệu có một số nguyên tố trong khoảng đó không. Tuy nhiên, điều này có nghĩa là vấn đề quyết định chung của: (Có tồn tại một số nguyên tố trong một khoảng không?) Có trong P. (Có rất nhiều câu trả lời cho bài đăng mà tôi không đọc nên tôi xin lỗi nếu câu hỏi này là trùng lặp hoặc không cần thiết).

Một mặt, nếu khoảng thời gian đủ lớn (ví dụ ) thì một cái gì đó giống như Định đề của Bertrand được áp dụng và chắc chắn có một số nguyên tố trong khoảng này. Tuy nhiên, tôi cũng biết rằng có hai khoảng cách lớn tùy ý giữa hai số nguyên tố (ví dụ: . [ N ! , N ! + N ][N,2N][N!,N!+N]

Ngay cả khi vấn đề quyết định là trong PI, hãy xem vấn đề tìm kiếm tương ứng cũng có thể giải quyết được như thế nào, bởi vì, chúng ta có thể không thể rút ra các thuộc tính tương tự về phân phối số nguyên tố đã biết khi thực hiện tìm kiếm nhị phân.

Câu trả lời:


17

Vì vậy, vấn đề của bạn là như sau:

Dữ liệu vào: số nguyên Câu hỏi: có tồn tại một số nguyên tố trong không?[ , bạn ],u
[,u]

Theo tôi biết, không biết vấn đề đó có ở P hay không.

Đây là những gì tôi biết:

  • Kiểm tra tính nguyên thủy (được cung cấp một số duy nhất, kiểm tra xem nó có phải là số nguyên tố hay không), vì vậy nếu phạm vi đủ nhỏ, bạn có thể kiểm tra toàn diện từng số trong phạm vi để xem liệu đó có phải là số nguyên tố hay không - nhưng điều này không dẫn đến thuật toán chung.

  • Nếu phỏng đoán của Cramer là đúng, thì vấn đề nằm ở phỏng đoán của P. Cramer nói rằng khoảng cách giữa các số nguyên tố liên tiếp gần là , vì vậy thuật toán sau sẽ nằm trong P: lặp qua các số , kiểm tra từng điểm cho dù đó là số nguyên tố; nếu bạn tìm thấy câu trả lời chính, hãy dừng ngay lập tức với câu trả lời có; nếu bạn nhấn , dừng lại không có câu trả lời. Phỏng đoán của Cramer cho chúng ta biết rằng bạn sẽ dừng lại sau hầu hết các phép thử nguyên thủy , do đó thuật toán sẽ chạy trong thời gian đa thức.O ( ( log n ) 2 ) , + 1 , + 2 , + 3 , ... u O ( ( log ) 2 )nÔi((đăng nhậpn)2),+1,+2,+3,Giáo dụcbạnÔi((đăng nhập)2)

    Thật không may, các kết quả đã biết về các khoảng trống chính dường như không đủ mạnh để chứng minh vô điều kiện rằng vấn đề nằm ở P.

  • Đây là một thuật toán đơn giản khác: liên tục chọn một số nguyên ngẫu nhiên từ và kiểm tra xem nó có phải là số nguyên tố hay không. Dừng lại nếu bạn tìm thấy một số nguyên tố hoặc nếu bạn đã thử mọi số nguyên trong và không có số nguyên tố nào. Theo kinh nghiệm, chúng ta nên kỳ vọng điều này sẽ hiệu quả trong thực tế. Định lý số nguyên tố cho chúng ta biết rằng nếu bạn chọn ngẫu nhiên số trong vùng lân cận của , xác suất đó là số nguyên tố sẽ vào khoảng . Do đó, theo phương pháp heurist, chúng ta nên kỳ vọng rằng sau khoảng , bạn thường sẽ tìm thấy một số nguyên tố và dừng lại, nếu có tồn tại. Mặt khác, do sự cố của bộ sưu tập phiếu giảm giá, nếu không có số nguyên tố trong phạm vi[ , u ] [ , u ] u 1 / log n O ( log u ) [ , u ] O ( ( u - l ) log ( u - l ) )r[,bạn][,bạn]bạn1/đăng nhậpnÔi(đăng nhậpbạn)[,bạn], bạn sẽ dừng lại sau các lần lặp khoảng . Vì vậy, nếu chúng ta có giới hạn trên tốt về kích thước của khoảng cách dài nhất giữa các số nguyên tố, điều này có nghĩa là vấn đề nằm ở BPP. Ngay cả khi không có giới hạn trên như vậy, nó vẫn tuân theo các trường hợp vấn đề ngẫu nhiên là dễ dàng.Ôi((bạn-tôi)đăng nhập(bạn-tôi))

  • Có lẽ người ta có thể áp dụng các phương pháp sàng để cải thiện thời gian chạy trong thực tế (ví dụ, để tránh thực hiện bất kỳ thử nghiệm nguyên thủy nào trên các số chia hết cho một số nguyên tố nhỏ). Tôi không biết liệu điều này có thể được hiển thị để dẫn đến bất kỳ cải thiện tiệm cận nào không.

  • Do những kỹ thuật này, vấn đề có thể dễ dàng trong thực tế.

  • Do những nhận xét trên, cá nhân tôi nghi ngờ rằng vấn đề là NP-đầy đủ.


Nó có thể không được thực hiện trong thời gian với một sàng chính không? Ôi(bạn)
Quelklef

@Quelklef, chắc chắn, nhưng điều đó cần thời gian theo cấp số nhân (theo cấp số nhân theo độ dài của đầu vào). Chúng tôi đang hỏi liệu có một thuật toán thời gian đa thức hay không, tức là, liệu có một thuật toán chạy trong thời gian . Ôi(đa(đăng nhậpbạn))
DW

Đợi đã, ? Tại sao nó không phải là ? Ôi(đa(đăng nhậpbạn))Ôi(đa(bạn))
Quelklef

@Quelklef, vì các số được biểu diễn dưới dạng nhị phân và phải mất bit để thể hiện ở dạng nhị phân. Điều này có lẽ bây giờ nằm ​​ngoài phạm vi của trường nhận xét, vì vậy vui lòng nhận thêm bất kỳ câu hỏi nào bạn có thể có về ý nghĩa của "thời gian đa thức" ở nơi khác - ví dụ: sử dụng nút 'Hỏi câu hỏi' ở phía trên bên phải. Cảm ơn bạn! đăng nhậpbạnbạn
DW

Không cần, bạn đã xóa tan sự nhầm lẫn của tôi. Cảm ơn rất nhiều!
Quelklef
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.