Saya mencari referensi untuk hasil berikut:
Menambahkan dua bilangan bulat dalam representasi factored sama sulitnya dengan memfaktorkan dua bilangan bulat dalam representasi biner biasa.
(Saya cukup yakin itu ada di luar sana karena ini adalah sesuatu yang saya tanyakan pada suatu saat, dan kemudian bersemangat ketika akhirnya saya melihatnya di media cetak.)
"Menambahkan dua bilangan bulat dalam representasi yang difaktorkan" adalah masalahnya: mengingat faktorisasi utama dari dua angka dan , hasilkan faktorisasi utama . Perhatikan bahwa algoritma naif untuk masalah ini menggunakan faktorisasi dalam representasi biner standar sebagai subrutin.y x + y
Pembaruan : Terima kasih Kaveh dan Sadeq untuk buktinya. Jelas semakin banyak bukti yang lebih meriah, tetapi saya juga ingin mendorong lebih banyak bantuan dalam menemukan referensi , yang seperti yang saya katakan saya cukup yakin ada. Saya ingat pernah membacanya di sebuah makalah dengan ide-ide lain yang menarik dan tidak sering dibahas di dalamnya, tetapi saya tidak ingat apa ide-ide lain itu atau apa makalah itu secara umum.
sumber
Jawaban:
Asumsikan bahwa kita dapat menyelesaikan masalah (sebut saja FactSum) dalam kompleksitas kelas dan ditutup di bawah -iteration (alias recursi-terikat) (misalnya jika kita dapat menghitung mana adalah fungsi biner, kita dapat menghitung ) dan berisi (kondisi terakhir ini dapat dibuat lebih lemah). Kami menunjukkan bahwa anjak dalam juga dalam .C log log x * y * x 1 * ... * x log n P CC C log log x ∗ y ∗ x1∗ ... ∗ xlogn P C
Perhatikan bahwa setiap angka dapat ditulis sebagai jumlah dari kekuatan 2 . Masing-masing dari mereka mudah diperhitungkan.logn 2
Sekarang diberi nomor, tulis sebagai jumlah kekuatannya, lalu tulis masing-masing ringkasan dalam representasi anjak, dan kemudian gunakan algoritma untuk menjumlahkannya dalam representasi anjak. Hasilnya akan menjadi anjak dari nomor input.
Ini menunjukkan bahwa anjak piutang dapat direduksi menjadi -masalah pada FactSum Anda. Oleh karena itu, anjak piutang adalah dalam P FactSum (dan saya pikir P dapat diganti dengan N C 1 di sini).log PFaktSum P N C1
sumber
Saya tidak mengetahui referensi, tapi saya pikir saya datang dengan bukti:
Asumsikan Anda memiliki oracle yang, pada input dua angka faktorHAI
dan
menghasilkan faktorisasi .x + y
Dengan memiliki akses ke , kami dapat memperhitungkan faktor N dalam waktu polinomial menggunakan prosedur rekursif berikut.HAI N
Faktor PROSEDUR ( )N
Analisis:
Dengan teorema bilangan prima untuk cukup besar , ada banyak bilangan prima di antara N / 2 dan N - 1 . Jika N sangat kecil sehingga tidak ada prima yang jatuh dalam interval ini, Anda dapat memfaktorkan N dengan mudah. Karena itu, langkah 1 berlalu.N N/2 N−1 N N
Pada langkah 2, Anda dapat menggunakan AKS atau tes primality waktu polinomial lainnya.
Jumlah rekursi hanyalah , karena pada setiap langkah N dipotong menjadi setengah (setidaknya)O(lg(N))=O(|N|) N
PS-1: Dengan asumsi dugaan Goldbach dapat membantu mempercepat prosedur untuk bilangan bulat genap (dan mungkin ganjil).
PS-2: Pengurangan yang digunakan adalah pengurangan Cook. Orang mungkin tertarik untuk melakukan bukti menggunakan pengurangan Karp.
sumber
Tanggapan ini tidak tergantung pada jawaban saya sebelumnya . Tujuannya adalah untuk mengatasi kekhawatiran @ Kaveh dalam komentar:
Saya memiliki keprihatinan serupa:
(Pengurangan karp adalah untuk masalah keputusan. Di sini, dengan pengurangan Karp, maksud saya pengurangan Cook dengan permintaan tunggal. Maaf untuk terminologi non-standar!)
Jawaban di bawah ini didasarkan pada diskusi di sini: /math/54580/factoring-some-integer-in-the-given-interval .
Dalam jawaban ini, saya akan memberikan pengurangan Karp waktu polinimial deterministik dari anjak piutang menjadi anjak jumlah dua bilangan bulat yang diwakili oleh faktorisasi mereka . Namun, ada satu tangkapan: Dalam proses pembuktiannya, saya akan menggunakan asumsi angka-teoretis berikut:
sumber