Menambahkan bilangan bulat yang diwakili oleh faktorisasi mereka sama sulitnya dengan anjak piutang? Permintaan referensi


22

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 + yxyx+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.


6
Saya pikir judul yang lebih baik adalah "Apakah memfaktorkan jumlah dua bilangan bulat diwakili oleh faktorisasi mereka sama sulitnya dengan anjak piutang?"
MS Dousti

1
Pertanyaan yang bagus Jika kita bisa menulis bilangan bulat yang diberikan sebagai jumlah dari dua bilangan bulat faktor mudah, maka apa yang Anda inginkan berikut. Sangat mudah dilakukan jika kita menginginkan angka, tetapi saya tidak melihat bagaimana melakukannya bahkan dengan angka. Mungkin layak untuk melihat kelas-kelas angka yang mudah diperhitungkan. log log nlognloglogn
Kaveh

1
beberapa pertanyaan terkait pada MO dan Math.SE: 1 , 2 , 3
Kaveh

Jawaban:


15

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 CCCloglogxyx1xlognPC

Perhatikan bahwa setiap angka dapat ditulis sebagai jumlah dari kekuatan 2 . Masing-masing dari mereka mudah diperhitungkan.logn2

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).logPFactSumPNC1


10

Saya tidak mengetahui referensi, tapi saya pikir saya datang dengan bukti:

Asumsikan Anda memiliki oracle yang, pada input dua angka faktorO

x=i=1npiαi

dan

y=i=1mqiβi,

menghasilkan faktorisasi .x+y

Dengan memiliki akses ke , kami dapat memperhitungkan faktor N dalam waktu polinomial menggunakan prosedur rekursif berikut.ON

Faktor PROSEDUR ( )N

  1. Temukan bilangan prima sehingga N / 2 x N - 1 , dan biarkan y = N - x .xN/2xN1y=Nx
  2. Jika tidak prima, mendapatkan faktorisasi dari y oleh faktor rekursif panggilan ( y ) dan output O ( x , f a c t o r ( y ) ) .yyyO(x,factor(y))
  3. Keluaran lain .O(x,y)

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.NN/2N1NN

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.


3
Saya pikir ini terbuka jika kita dapat menemukan yang terbaik dalam rentang yang diberikan secara efisien jadi saya tidak melihat bagaimana
kinerja

1
@Kaveh: Anda benar! Dengan beberapa langkah tambahan, saya pikir saya dapat mengubah algoritma untuk tidak memerlukan untuk menjadi prima dan kemudian faktor itu seperti y ; atau kita dapat mengasumsikan bahwa reduksi adalah probabilistik (karena dalam waktu polinomial probabilistik , kita dapat menemukan prima dalam kisaran yang diberikan). xy
MS Dousti

2
Ya, saya pikir kami memiliki ide yang sama, yaitu ingin menemukan faktor bilangan bulat yang mudah untuk input, Anda mencoba menggunakan bilangan prima, saya menggunakan kekuatan 2. :) Saya masih tidak tahu apakah kita bisa melakukannya dengan kurang dari jumlah logaritmik pertanyaan ke oracle, dan itu tampaknya terkait dengan pertanyaan teori bilangan yang menarik dan alami (menuliskan angka sebagai jumlah dari nomor faktor yang mudah).
Kaveh

5

Tanggapan ini tidak tergantung pada jawaban saya sebelumnya . Tujuannya adalah untuk mengatasi kekhawatiran @ Kaveh dalam komentar:

Hal ini mudah dilakukan jika kita ingin angka, tapi saya tidak melihat bagaimana melakukannya bahkan dengan log log n nomor.lognloglogn

Saya memiliki keprihatinan serupa:

Pengurangan yang digunakan adalah pengurangan Cook. Seseorang mungkin tertarik untuk melakukan bukti menggunakan pengurangan Karp.

(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:

pnpn+1pn+1pn=O(log2pn)

Nn=|N|=O(logN)N[Nlog3N,N]log3N=O(n3)

x[Nlog3N,N]y=Nx

0ylog3N|y|=O(loglogN)=O(logn)y

(x,y)N=x+y


Terima kasih Sadeq, tetapi hasil bersyarat bukanlah yang saya minta. ps: Saya tertarik dengan representasi angka yang menarik dan representasi yang didapat seseorang dari jawaban Anda (mengeluarkan bilangan prima besar) tidak terlihat sangat menarik bagi saya. Untuk memberikan rasa dari apa yang menarik bagi saya: setiap bilangan alami adalah jumlah empat kotak .
Kaveh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.