Кіріспе

Бір санның жай екенін анықтау алгоритмі. Санның жай екенін анықтауға арналған алгоритм – жайлықты тексеру. Бұл криптография сияқты математиканың басқа да салаларында қолданылады. Бүтін сандарды жіктеуден (факторлаудан) айырмашылығы, жайлықты тексеру алгоритмдері көбінесе жай факторларды көрсетпейді, тек кіріс сан жай немесе жай емес екенін анықтайды. Факторлау есептеу жағынан қиын мәселе саналады, ал жайлықты тексеру салыстырмалы түрде жеңіл (оның орындалу уақыты кіріс саның мөлшеріне пропорционалды). Кейбір жайлықты тексеру алгоритмдері санның жай екенін дәлелдейді, ал Миллер-Рабин сияқты басқалары санның құрама екенін дәлелдейді. Сондықтан, соңғыларын жайлықты тексеру емес, құрамалықты тексеру деп атау дұрыс болар еді.

Басқа сынақтар

Леонард Адлеман мен Минг Де Хуан эллиптік қисықтардың бастапқы санын анықтау тестінің қатесіз (бірақ күтілетін көпмүшелік уақытты талап ететін) нұсқасын ұсынды. Басқа ықтималдық тесттерден өзгеше, бұл алгоритм бастапқы сан екенін растайтын сертификатты шығарады, осылайша саның бастапқы сан екенін дәлелдеуге мүмкіндік береді. Алгоритм практикалық тұрғыдан тым баяу. Егер кванттық компьютерлер қолжетімді болса, бастапқы санды классикалық компьютерлерге қарағанда асимптотикалық жағынан жылдам тексеруге болады. Шор алгоритмі мен бүтін санды көбейткіштерге жіктеу әдісінің, Поклингтонның бастапқы сан тестімен үйлесімі мәселені шеше алады.

Жедел детерминистік сынақтар

20 ғасырдың басында Ферманың кішкентай теоремасының салдары біріншілік санды анықтау үшін қолданылатынын көрсетті. Бұл Поклингтонның біріншілік тестіне әкелді. Дегенмен, бұл тест n-1 санының ішінара факторлануын қажет ететіндіктен, ең жаман жағдайда орындалу уақыты әлі де өте баяу болды. Нақты әдістерден едәуір жылдам алғашқы детерминистік біріншілік тесті – циклотомиялық тест болды; оның орындалу уақыты O((log n)^c log log log n) екені дәлелденеді, мұнда n – біріншілік санды анықтау үшін тексерілетін сан, ал c – n-ден тәуелсіз тұрақты. Көптеген жақсартулар жасалды, бірақ ешқайсысының полиномиалды орындалу уақыты бар екені дәлелденбеді. (Орындалу уақыты кіріс мөлшерімен өлшенеді, бұл жағдайда ~ log n, яғни n санын бейнелеу үшін қажетті биттер саны.) Эллиптік қисықтарды қолданатын біріншілік тесті, егер аналитикалық сандар теориясы бойынша кейбір болжамдар дұрыс болса, O((log n)^6) уақытында орындалатыны дәлелденеді. Сол сияқты, жалпыланған Риман гипотезасы бойынша, ықтималдық Миллер-Рабин тестінің негізі болып табылатын детерминистік Миллер тесті Õ((log n)^4) уақытында орындалатыны дәлелденеді. Іс жүзінде, бұл алгоритм басқа екеуіне қарағанда, өңдеуге болатын сандардың мөлшері үшін баяурақ. Бұл екі әдістің іске асырылуы өте қиын болғандықтан және бағдарламалау қателіктеріне әкелуі мүмкін болғандықтан, көбінесе баяурақ, бірақ қарапайым тесттерге басымдық беріледі. 2002 жылы Маниндра Агравал, Нирадж Каял және Нитин Саксена бірінші дәлелденген, шартты емес детерминистік полиномиалды уақытты біріншілік тестін ойлап тапты. AKS біріншілік тесті Õ((log n)^12) уақытында орындалады (олардың мақаласының жаңартылған нұсқасында Õ((log n)^7.5-ке дейін жақсартылды), ал Софи Жерменнің болжамы дұрыс болса, оны Õ((log n)^6) дейін төмендетуге болады. Кейіннен Ленстра және Померанс тесттің Õ((log n)^6) уақытында орындалатын нұсқасын ұсынды. Агравал, Каял және Саксена өз алгоритмінің нұсқасын ұсынады, егер Агравалдың болжамы дұрыс болса, ол Õ((log n)^3) уақытында орындалады; алайда, Хендрик Ленстра мен Карл Померанстың эвристикалық аргументі бұл болжамның қате болуы мүмкін екенін көрсетеді. әлі де дұрыс болуы мүмкін.

Күрделілігі

Есептеу күрделілігі теориясында жай сандарға сәйкес келетін формальді тіл PRIMES деп белгіленеді. PRIMES Co NP-де екенін көрсету оңай: оның COMPOSITES толықтығы NP-де, себебі жай сандық еместігін факторды белгісіздікпен таба отырып анықтауға болады. 1975 жылы Воган Пратт жай сандықты полиномиалдық уақытта тексеруге болатын сертификаттың бар екенін көрсетті, осылайша PRIMES NP-де, демек \mathsf{NP \cap coNP} -де екенін дәлелдеді. Толығырақ ақпарат алу үшін жай сандық сертификатқа қараңыз. Кейін Solovay–Strassen және Miller–Rabin алгоритмдерінің ашылуы PRIMES-ті coRP класына енгізді. 1992 жылы Адлеман–Хуан алгоритмі…

Сандық-теориялық әдістер

Санның жай екенін тексеру үшін белгілі бір сандық теориялық әдістер бар, мысалы Лукас сынағы және Прот сынағы. Бұл сынақтар көбінесе n + 1, n - 1 немесе осыған ұқсас шамаларды есепке бөлуді талап етеді, демек олар жалпы мақсаттағы жайлылықты тексеруге тиімді емес, бірақ тексерілетін n санының ерекше түрі бар екені белгілі болғанда олар өте қуатты болуы мүмкін. Лукас сынағы a модулі n санының көбейту ретінің n-ге жай болғанда, a нөлдік түбір модулі n болса, n - 1-ге тең екеніне негізделген. Егер біз a нөлдік түбір екенін көрсете алсақ, онда n жай екенін көрсете аламыз.