Algoritma Shor
Sekarang kita akan beralih perhatian kepada masalah pemfaktoran integer, dan lihat bagaimana ia boleh diselesaikan dengan cekap pada komputer kuantum menggunakan penganggaran fasa. Algoritma yang akan kita peroleh ialah algoritma Shor untuk pemfaktoran integer. Shor tidak menggambarkan algoritmanya khususnya dalam sebutan penganggaran fasa, tetapi itu adalah cara yang semula jadi dan intuitif untuk menerangkan cara ia berfungsi.
Kita akan mulakan dengan membincangkan masalah perantaraan yang dikenali sebagai masalah pencarian peringkat dan melihat bagaimana penganggaran fasa memberikan penyelesaian kepada masalah ini. Kemudian kita akan lihat bagaimana penyelesaian yang cekap kepada masalah pencarian peringkat memberi kita penyelesaian yang cekap kepada masalah pemfaktoran integer. (Apabila penyelesaian kepada satu masalah memberikan penyelesaian kepada masalah lain seperti ini, kita katakan masalah kedua diturunkan kepada yang pertama — jadi dalam kes ini kita menurunkan pemfaktoran integer kepada pencarian peringkat.) Bahagian kedua algoritma Shor ini langsung tidak menggunakan pengiraan kuantum; ia sepenuhnya klasik. Pengiraan kuantum hanya diperlukan untuk menyelesaikan pencarian peringkat.
Masalah pencarian peringkat
Beberapa teori nombor asas
Untuk menerangkan masalah pencarian peringkat dan cara ia boleh diselesaikan menggunakan penganggaran fasa, adalah berguna untuk bermula dengan beberapa konsep teori nombor asas, dan memperkenalkan beberapa notasi yang berguna sepanjang jalan.
Untuk bermula, bagi sebarang integer positif takrifkan set seperti berikut.
Sebagai contoh, dan seterusnya.
Ini adalah set nombor, tetapi kita boleh memikirkannya sebagai lebih daripada sekadar set. Khususnya, kita boleh memikirkan operasi aritmetik pada seperti penambahan dan pendaraban — dan jika kita bersetuju untuk sentiasa mengambil jawapan kita modulo (iaitu, bahagikan dengan dan ambil bakinya sebagai hasil), kita akan sentiasa kekal dalam set ini apabila melakukan operasi-operasi ini. Dua operasi khusus penambahan dan pendaraban, kedua-duanya diambil modulo menjadikan sebagai sebuah gelanggang, yang merupakan jenis objek yang sangat penting dalam algebra.
Sebagai contoh, dan adalah elemen dan jika kita mendarabkan mereka bersama kita mendapat yang meninggalkan baki apabila dibahagikan dengan Kadangkala kita ungkapkan ini seperti berikut.
Tetapi kita juga boleh menulis dengan syarat telah dijelaskan bahawa kita bekerja dalam hanya untuk memastikan notasi kita semudah mungkin.
Sebagai contoh, berikut adalah jadual penambahan dan pendaraban untuk
Antara elemen elemen yang memenuhi adalah istimewa. Kerap kali set yang mengandungi elemen-elemen ini dilambangkan dengan tanda bintang seperti berikut.
Jika kita menumpukan perhatian pada operasi pendaraban, set membentuk sebuah kumpulan — khususnya kumpulan abelian — yang merupakan satu lagi jenis objek penting dalam algebra. Ia adalah fakta asas tentang set-set ini (dan kumpulan terhingga secara umum), bahawa jika kita memilih mana-mana elemen dan mendarabkan berulang kali kepada dirinya sendiri, kita akan sentiasa akhirnya mendapat nombor
Sebagai contoh pertama, mari kita ambil Kita ada bahawa kerana dan jika kita mendarabkan kepada dirinya sendiri kita mendapat seperti yang disahkan oleh jadual di atas.
Sebagai contoh kedua, mari kita ambil Jika kita melalui nombor dari hingga yang mempunyai GCD sama dengan dengan adalah seperti berikut.
Bagi setiap elemen ini, adalah mungkin untuk menaikkan nombor itu kepada kuasa integer positif untuk mendapat Berikut adalah kuasa terkecil yang berfungsi:
Sudah tentu kita bekerja dalam untuk semua persamaan ini, yang tidak kita tulis — kita anggap ia tersirat untuk mengelakkan kerumitan. Kita akan terus berbuat demikian sepanjang sisa pelajaran ini.
Pernyataan masalah dan hubungan dengan penganggaran fasa
Sekarang kita boleh menyatakan masalah pencarian peringkat.
Sebagai alternatif, dalam sebutan notasi yang baru kita perkenalkan di atas, kita diberi dan kita mencari integer positif terkecil supaya Nombor ini dipanggil peringkat bagi modulo
Untuk menghubungkan masalah pencarian peringkat dengan penganggaran fasa, mari kita fikirkan tentang operasi yang ditakrifkan pada sistem yang keadaan klasiknya berpadanan dengan di mana kita mendarab dengan elemen tetap
Untuk lebih jelas, kita melakukan pendaraban dalam jadi ia tersirat bahawa kita mengambil hasil darab modulo di dalam ket pada sebelah kanan persamaan.
Sebagai contoh, jika kita ambil dan maka tindakan pada asas piawai adalah seperti berikut.
Ini adalah operasi unitary dengan syarat ia mengocok elemen asas piawai jadi sebagai matriks ia adalah matriks permutasi. Jelas dari takrifannya bahawa operasi ini adalah deterministik, dan cara mudah untuk melihat bahawa ia boleh dinyahbalik adalah dengan memikirkan peringkat bagi modulo dan menyedari bahawa penyongsangan adalah
Ada cara lain untuk memikirkan penyongsangan yang tidak memerlukan sebarang pengetahuan tentang (yang, setelah semua, adalah apa yang kita cuba kira). Bagi setiap elemen sentiasa ada elemen unik yang memenuhi Kita tandakan elemen ini dengan dan ia boleh dikira dengan cekap; sambungan algoritma GCD Euclid melakukannya dengan kos kuadratik dalam Dan dengan itu
Jadi, operasi adalah deterministik dan boleh dinyahbalik. Ini bermakna ia diterangkan oleh matriks permutasi, dan oleh itu adalah unitary.
Sekarang mari kita fikirkan tentang vektor eigen dan nilai eigen operasi dengan mengandaikan bahawa Seperti yang baru sahaja dihujahkan, andaian ini memberitahu kita bahawa adalah unitary.
Terdapat nilai eigen mungkin termasuk nilai eigen yang sama berulang beberapa kali, dan secara umum ada kebebasan dalam memilih vektor eigen yang sepadan — tetapi kita tidak perlu risau tentang semua kemungkinan. Mari kita mulakan dengan mudah dan kenalpasti hanya satu vektor eigen
Nombor adalah peringkat bagi modulo di sini dan sepanjang sisa pelajaran ini. Nilai eigen yang berkaitan dengan vektor eigen ini adalah kerana ia tidak berubah apabila kita mendarab dengan
Ini berlaku kerana jadi setiap keadaan asas piawai dialihkan ke untuk dan dialihkan kembali ke Secara kasarnya, ia seperti kita mengacau perlahan-lahan, tetapi ia sudah sepenuhnya teracau jadi tiada apa yang berubah.
Berikut adalah contoh lain vektor eigen Yang ini lebih menarik dalam konteks pencarian peringkat dan penganggaran fasa.
Sebagai alternatif, kita boleh menulis vektor ini menggunakan hasil tambah seperti berikut.
Di sini kita melihat nombor kompleks muncul secara semula jadi, disebabkan cara pendaraban dengan berfungsi modulo Kali ini nilai eigen yang sepadan adalah Untuk melihat ini, kita boleh mengira seperti berikut.
Kemudian, kerana dan kita lihat bahawa
jadi
Menggunakan penaakulan yang sama, kita boleh mengenal pasti pasangan vektor eigen/nilai eigen tambahan untuk Bagi sebarang pilihan kita ada bahawa
adalah vektor eigen yang nilai eigennya adalah
Terdapat vektor eigen lain bagi tetapi kita tidak perlu memikirkannya — kita akan fokus semata-mata pada vektor eigen yang baru kita kenalpasti.
Pencarian peringkat melalui anggaran fasa
Untuk menyelesaikan masalah pencarian peringkat bagi pilihan yang diberikan, kita boleh menggunakan prosedur anggaran fasa ke atas operasi
Untuk melakukan ini, kita perlu melaksanakan bukan sahaja dengan cekap menggunakan Circuit kuantum, tetapi juga dan seterusnya, sejauh yang diperlukan untuk mendapatkan anggaran yang cukup tepat daripada prosedur anggaran fasa. Di sini kita akan terangkan cara ini boleh dilakukan, dan kita akan menentukan dengan tepat berapa banyak ketepatan yang diperlukan kemudian.
Mari kita mulakan dengan operasi itu sendiri. Secara semula jadi, kerana kita bekerja dengan model Circuit kuantum, kita akan menggunakan notasi perduaan untuk mengekod nombor antara dan Nombor terbesar yang perlu kita ekodkan ialah jadi bilangan bit yang diperlukan ialah
Sebagai contoh, jika kita dapat Ini rupa pengekodkan elemen sebagai rentetan perduaan panjang
Dan kini, ini definisi tepat bagaimana ditakrifkan sebagai operasi -Qubit.
Intinya ialah walaupun kita hanya peduli tentang cara berfungsi untuk kita memang perlu menentukan cara ia berfungsi untuk baki keadaan asas piawai — dan kita perlu melakukan ini dengan cara yang masih memberikan operasi unitari. Dengan menakrifkan supaya ia tidak melakukan apa-apa kepada keadaan asas piawai yang selebihnya, matlamat ini tercapai.
Menggunakan algoritma untuk pendaraban integer dan pembahagian yang dibincangkan dalam pelajaran sebelumnya, bersama-sama dengan metodologi untuk pelaksanaan boleh-balik bebas-sampah bagi algoritma tersebut, kita boleh membina Circuit kuantum yang menjalankan untuk sebarang pilihan dengan kos Berikut adalah satu cara ia boleh dilakukan.
-
Bina Circuit untuk menjalankan operasi
di mana
menggunakan kaedah yang diterangkan dalam pelajaran sebelumnya. Ini memberi kita Circuit bersaiz
-
Tukar dua sistem -Qubit menggunakan gate swap untuk menukar qubit satu per satu.
-
Sama seperti langkah pertama, bina Circuit untuk operasi
di mana ialah songsangan dalam
Dengan memulakan qubit bawah dan menggabungkan tiga langkah, kita mendapat transformasi ini:
Kaedah ini memerlukan qubit ruang kerja, tetapi ia dipulangkan ke keadaan mulanya pada akhir, yang membolehkan kita menggunakan Circuit ini untuk anggaran fasa. Jumlah kos Circuit yang kita peroleh ialah
Untuk menjalankan dan seterusnya, kita boleh menggunakan kaedah yang sama persis, kecuali kita menggantikan dengan dan seterusnya, sebagai elemen Maksudnya, untuk sebarang kuasa yang kita pilih, kita boleh mencipta Circuit untuk bukan dengan mengulang kali Circuit untuk tetapi sebaliknya dengan mengira dan kemudian menggunakan Circuit untuk
Pengiraan kuasa adalah masalah pemangkatan modular yang disebut dalam pelajaran sebelumnya. Pengiraan ini boleh dilakukan secara klasik, menggunakan algoritma pemangkatan modular yang disebut dalam pelajaran sebelumnya (sering disebut algoritma kuasa dalam teori nombor komputasi). Malah, kita hanya memerlukan kuasa pangkat-2 bagi khususnya dan kita boleh mendapatkan kuasa-kuasa ini dengan mengkuasaduakan secara berulang sebanyak kali. Setiap pengkuasaduaan boleh dilakukan oleh Circuit Boolean bersaiz
Pada dasarnya, apa yang kita lakukan di sini ialah memindahkan masalah mengulang sebanyak kali kepada pengiraan klasik yang cekap. Dan bernasib baik bahawa ini mungkin dilakukan! Untuk pilihan Circuit kuantum sewenang-wenang dalam masalah anggaran fasa, kemungkinan ini tidak mungkin — dan dalam kes itu kos anggaran fasa yang terhasil berkembang secara eksponen dalam bilangan qubit kawalan
Penyelesaian dengan eigenvector yang sesuai
Untuk memahami cara kita menyelesaikan masalah pencarian peringkat menggunakan anggaran fasa, mari kita mulakan dengan andaian bahawa kita menjalankan prosedur anggaran fasa ke atas operasi menggunakan eigenvector Mendapatkan eigenvector ini tidaklah mudah, ternyata, jadi ini bukan penghujung cerita — tetapi berguna untuk bermula di sini.
Nilai eigen yang sepadan dengan eigenvector ialah
Iaitu, untuk Jadi, jika kita menjalankan prosedur anggaran fasa ke atas menggunakan eigenvector kita akan mendapat anggaran bagi Dengan mengira songsangannya kita akan dapat mengetahui — dengan syarat anggaran kita cukup baik.
Secara lebih terperinci, apabila kita menjalankan prosedur anggaran fasa menggunakan qubit kawalan, yang kita perolehi ialah nombor Kemudian kita ambil sebagai teka-teki untuk yang dalam kes ini ialah Untuk mengetahui daripada anggaran ini, perkara yang wajar dilakukan ialah mengira songsangan anggaran kita dan membundarkan kepada integer terdekat.
Sebagai contoh, katakan dan kita menjalankan anggaran fasa ke atas dengan eigenvector menggunakan bit kawalan. Anggaran bit terbaik kepada ialah dan kita mempunyai peluang yang agak baik (kira-kira dalam kes ini) untuk mendapat hasil daripada anggaran fasa. Kita ada
dan membundarkan kepada integer terdekat memberi iaitu jawapan yang betul.
Sebaliknya, jika kita tidak menggunakan ketepatan yang cukup, kita mungkin tidak mendapat jawapan yang betul. Contohnya, jika kita mengambil qubit kawalan dalam anggaran fasa, kita mungkin mendapat anggaran bit terbaik kepada iaitu Mengira songsangannya menghasilkan
dan membundarkan kepada integer terdekat memberi jawapan yang salah iaitu
Jadi berapa banyak ketepatan yang kita perlukan untuk mendapat jawapan yang betul? Kita tahu bahawa peringkat adalah integer, dan secara intuitif apa yang kita perlukan ialah ketepatan yang cukup untuk membezakan daripada kemungkinan berdekatan, termasuk dan Nombor yang paling rapat dengan yang perlu kita bimbangkan ialah dan jarak antara dua nombor ini ialah
Jadi, jika kita ingin memastikan kita tidak silap dengan cukuplah menggunakan ketepatan yang menjamin anggaran terbaik kepada lebih rapat kepada berbanding Jika kita menggunakan ketepatan yang cukup supaya
supaya ralat kurang daripada separuh jarak antara dan maka akan lebih rapat kepada berbanding mana-mana kemungkinan lain, termasuk dan
Kita boleh menyemak ini seperti berikut. Andaikan bahawa
untuk yang memenuhi
Apabila kita mengira songsangannya kita dapat
Dengan memaksimumkan pengangka dan meminimumkan penyebut, kita boleh menganggar sejauh mana kita dari seperti berikut.
Kita kurang dari jauh dari jadi seperti yang dijangkakan kita akan mendapat apabila membundarkan.
Malangnya, kerana kita belum tahu kita tidak boleh menggunakannya untuk memberitahu kita berapa banyak ketepatan yang diperlukan. Apa yang boleh kita lakukan sebaliknya ialah menggunakan fakta bahawa mestilah lebih kecil dari untuk memastikan kita menggunakan ketepatan yang mencukupi. Khususnya, jika kita menggunakan ketepatan yang cukup untuk menjamin anggaran terbaik kepada memenuhi
maka kita akan mempunyai ketepatan yang cukup untuk menentukan dengan betul apabila kita mengira songsangannya. Mengambil memastikan kita mempunyai peluang tinggi untuk mendapat anggaran dengan ketepatan ini menggunakan kaedah yang diterangkan sebelumnya. (Mengambil sudah cukup jika kita selesa dengan had bawah 40% untuk kebarangkalian kejayaan.)
Penyelesaian umum
Seperti yang baru kita lihat, jika kita mempunyai eigenvector bagi kita boleh mengetahui melalui anggaran fasa, selagi kita menggunakan qubit kawalan yang cukup untuk melakukan ini dengan ketepatan yang mencukupi. Malangnya, tidak mudah untuk mendapatkan eigenvector jadi kita perlu memikirkan cara untuk meneruskan.
Mari kita andaikan seketika bahawa kita meneruskan seperti di atas, tetapi dengan eigenvector menggantikan untuk sebarang pilihan yang kita pilih untuk fikirkan. Hasil yang kita peroleh daripada prosedur anggaran fasa akan menjadi anggaran
Dengan andaian bahawa kita tidak mengetahui sama ada mahupun ini mungkin atau mungkin tidak membolehkan kita mengenal pasti Contohnya, jika kita akan mendapat anggaran kepada yang malangnya tidak memberitahu kita apa-apa. Walau bagaimanapun, ini kes yang luar biasa; untuk nilai yang lain, kita sekurang-kurangnya akan dapat mempelajari sesuatu tentang
Kita boleh menggunakan algoritma yang dikenali sebagai algoritma pecahan berterusan untuk menukar anggaran kita kepada pecahan-pecahan berdekatan — termasuk jika anggaran cukup baik. Kita tidak akan menerangkan algoritma pecahan berterusan di sini. Sebaliknya, ini adalah pernyataan fakta yang diketahui tentang algoritma ini.
Jika kita mempunyai anggaran yang sangat rapat kepada dan kita menjalankan algoritma pecahan berterusan untuk dan kita akan mendapat dan seperti yang diterangkan dalam fakta tersebut. Analisis fakta tersebut membolehkan kita menyimpulkan bahawa
Perhatikan khususnya bahawa kita tidak semestinya mengetahui dan kita hanya mengetahui dalam sebutan paling mudah.
Sebagai contoh, dan seperti yang sudah kita perhatikan, kita tidak akan mempelajari apa-apa daripada Tetapi itulah satu-satunya nilai di mana perkara itu berlaku. Apabila bukan sifar, ia mungkin mempunyai faktor sepunya dengan tetapi nombor yang kita peroleh daripada algoritma pecahan berterusan sekurang-kurangnya mesti membahagi
Ia jauh dari jelas, tetapi ia memang benar bahawa jika kita mempunyai kemampuan untuk mengetahui dan untuk bagi yang dipilih secara seragam rawak, maka kita berkemungkinan besar dapat memulihkan selepas beberapa sampel sahaja. Khususnya, jika teka-teki kita untuk ialah gandaan sepunya terkecil bagi semua nilai penyebut yang kita perhatikan, kita akan betul dengan kebarangkalian tinggi. Secara intuitif, sesetengah nilai tidak baik kerana ia mempunyai faktor sepunya dengan dan faktor-faktor sepunya itu tersembunyi daripada kita apabila kita mengetahui dan Tetapi pilihan secara rawak tidak mungkin menyembunyikan faktor untuk lama, dan kebarangkalian bahawa kita tidak meneka dengan betul melalui gandaan sepunya terkecil penyebut yang kita perhatikan susut secara eksponen dalam bilangan sampel.
Masalah cara kita mendapatkan eigenvector bagi untuk menjalankan prosedur anggaran fasa masih perlu ditangani. Rupanya, kita sebenarnya tidak perlu menciptanya!
Apa yang akan kita lakukan sebaliknya ialah menjalankan prosedur anggaran fasa ke atas keadaan yang bermaksud pengekodkan perduaan -bit bagi nombor sebagai ganti eigenvector bagi Setakat ini, kita hanya bercakap tentang menjalankan prosedur anggaran fasa ke atas eigenvector tertentu, tetapi tiada apa yang menghalang kita daripada menjalankan prosedur ke atas keadaan input yang bukan eigenvector dan itulah yang kita lakukan di sini dengan keadaan (Ini bukan eigenvector bagi melainkan yang bukan pilihan yang kita minati.)
Rasional untuk memilih keadaan sebagai ganti eigenvector ialah persamaan berikut adalah benar.
Satu cara untuk mengesahkan persamaan ini ialah dengan membandingkan hasil darab dalaman kedua-dua sisi dengan setiap keadaan asas piawai, menggunakan formula yang disebutkan sebelumnya dalam pelajaran untuk membantu menilai hasil bagi sebelah kanan. Akibatnya, kita akan mendapat tepat-tepat hasil pengukuran yang sama seolah-olah kita telah memilih secara seragam rawak dan menggunakan sebagai eigenvector.
Secara lebih terperinci, bayangkan kita menjalankan prosedur anggaran fasa dengan keadaan sebagai ganti salah satu eigenvector Selepas jelmaan Fourier kuantum songsang dilakukan, ini meninggalkan kita dengan keadaan
di mana
Vektor mewakili keadaan qubit atas selepas songsangan jelmaan Fourier kuantum dilakukan ke atasnya.
Jadi, berdasarkan fakta bahawa adalah set ortonormal, kita dapati bahawa pengukuran qubit atas menghasilkan anggaran kepada nilai di mana dipilih secara seragam rawak. Seperti yang sudah kita bincangkan, ini membolehkan kita mengetahui dengan keyakinan tinggi selepas beberapa larian bebas, yang merupakan matlamat kita.
Jumlah kos
Kos untuk melaksanakan setiap unitari-berkawalan ialah Terdapat operasi unitari-berkawalan, dan kita mempunyai jadi jumlah kos untuk operasi unitari-berkawalan ialah Selain itu, kita mempunyai gate Hadamard (yang menyumbang kepada kos), dan jelmaan Fourier kuantum songsang menyumbang kepada kos. Oleh itu, kos operasi unitari-berkawalan mendominasi kos keseluruhan prosedur — yang oleh itu ialah
Selain Circuit kuantum itu sendiri, terdapat beberapa pengiraan klasik yang perlu dilakukan sepanjang jalan. Ini termasuk mengira kuasa dalam untuk yang diperlukan untuk mencipta gate unitari-berkawalan, serta algoritma pecahan berterusan yang menukar anggaran kepada pecahan. Pengiraan-pengiraan ini boleh dilakukan oleh Circuit Boolean dengan jumlah kos
Seperti biasa, semua had ini boleh diperbaiki menggunakan algoritma yang cekap secara asimptotik; had ini mengandaikan kita menggunakan algoritma piawai untuk operasi aritmetik asas.
Pemfaktoran melalui pencarian peringkat
Perkara terakhir yang perlu kita bincangkan ialah bagaimana menyelesaikan masalah pencarian peringkat membantu kita untuk memfaktorkan. Bahagian ini sepenuhnya klasik — ia tidak ada kaitan khusus dengan pengkomputeran kuantum.
Begini idea asasnya. Kita ingin memfaktorkan nombor dan kita boleh melakukan ini secara rekursif. Khususnya, kita boleh menumpukan pada tugasan memisahkan yang bermaksud mencari mana-mana dua integer dengan Ini tidak mungkin jika adalah nombor perdana, tetapi kita boleh menguji dengan cekap sama ada perdana menggunakan algoritma ujian keprerdanaan terlebih dahulu, dan jika bukan perdana kita akan cuba memisahkannya. Setelah kita memisahkan kita boleh secara rekursif berulang ke dan sehingga semua faktor kita adalah perdana dan kita mendapat pemfaktoran perdana
Memisahkan integer genap adalah mudah: kita hanya keluarkan dan
Mudah juga untuk memisahkan kuasa sempurna, iaitu nombor dalam bentuk untuk integer hanya dengan menganggar punca dan seterusnya, dan memeriksa integer berdekatan sebagai suspek untuk Kita tidak perlu pergi lebih jauh dari langkah dalam jujukan ini, kerana pada ketika itu punca jatuh di bawah dan tidak akan mendedahkan calon tambahan.
Bagus bahawa kita boleh melakukan kedua-dua perkara ini kerana pencarian peringkat tidak akan membantu kita memfaktorkan nombor genap atau kuasa perdana, di mana nombor kebetulan adalah perdana. Jika ganjil dan bukan kuasa perdana, bagaimanapun, pencarian peringkat membolehkan kita memisahkan
Satu larian algoritma ini mungkin gagal mencari faktor Khususnya, ini berlaku dalam dua situasi:
- Peringkat modulo adalah ganjil.
- Peringkat modulo adalah genap dan
Menggunakan teori nombor asas boleh dibuktikan bahawa, untuk pilihan rawak dengan kebarangkalian sekurang-kurangnya tiada satu pun daripada peristiwa ini berlaku. Malah, kebarangkalian bahawa mana-mana peristiwa berlaku adalah paling banyak untuk ialah bilangan faktor perdana berbeza itulah sebabnya andaian bahawa bukan kuasa perdana diperlukan. (Andaian bahawa ganjil juga diperlukan agar fakta ini benar.)
Ini bermakna setiap larian mempunyai sekurang-kurangnya 50% peluang untuk memisahkan Oleh itu, jika kita menjalankan algoritma kali, memilih secara rawak setiap kali, kita akan berjaya memisahkan dengan kebarangkalian sekurang-kurangnya
Idea asas di sebalik algoritma ini adalah seperti berikut. Jika kita mempunyai pilihan di mana peringkat bagi modulo adalah genap, maka adalah integer dan kita boleh mempertimbangkan nombor-nombor
Menggunakan formula kita simpulkan bahawa
Kini, kita tahu bahawa mengikut definisi peringkat — yang merupakan cara lain untuk mengatakan bahawa membahagi tepat Ini bermakna membahagi tepat hasil darab
Agar ini benar, semua faktor perdana mestilah juga faktor perdana atau (atau kedua-duanya) — dan untuk pilihan secara rawak, ternyata tidak mungkin semua faktor perdana akan membahagi satu sebutan sahaja tanpa yang lain. Selain itu, selagi sesetengah faktor perdana membahagi sebutan pertama dan sesetengah membahagi sebutan kedua, kita akan dapat mencari faktor bukan trivial dengan mengira GCD dengan sebutan pertama.