Seberapa sulit untuk menghitung jumlah faktor bilangan bulat?

30

Diberikan bilangan bulat dengan panjang n bit, seberapa sulitkah untuk menampilkan jumlah faktor utama (atau jumlah faktor) dari N ?NnN

Jika kita tahu faktorisasi utama N , maka ini akan mudah. Namun, jika kita mengetahui jumlah faktor prima, atau jumlah faktor umum, tidak jelas bagaimana kita akan menemukan faktorisasi utama yang sebenarnya.

Apakah masalah ini dipelajari? Adakah algoritma yang dikenal yang memecahkan pertanyaan ini tanpa menemukan faktorisasi prima?

Pertanyaan ini dimotivasi oleh rasa ingin tahu dan sebagian oleh pertanyaan matematika .

Artem Kaznatcheev
sumber
3
Jika jumlah faktor prima besar, itu menyiratkan bahwa N memiliki faktor kecil yang dapat ditemukan dengan mudah. Di sisi lain, jika jumlah faktor prima dari N kecil, katakanlah 2, maka itu mirip dengan masalah anjak produk dari dua bilangan prima, dan mengetahui bahwa jumlah faktor 2 tampaknya tidak membantu. Lihat pertanyaan ini oleh Omid tentang kekerasan rata-rata mereka.
Kaveh
1
Satu hal lagi, karena pembagian berseragam , masalah penghitungan semua faktor (bukan hanya faktor prima) ada di # T C 0 dan karena itu juga dalam P (dan mungkin juga lengkap untuk # T C 0 di bawah A Pengurangan C 0 ). TC0#TC0P#TC0SEBUAHC0
Kaveh
1
Kaveh, jika Anda bisa memperluas komentar Anda di atas menjadi jawaban, itu akan bagus. Saya tidak benar-benar melihat bagaimana pembagian dalam membuat Anda menghitung faktor dalam # TC 0 tanpa juga menyiratkan bahwa anjak piutang adalah dalam TC 0 . Kesalahpahaman ini kemungkinan disebabkan oleh kegagalan saya sendiri tetapi jawaban yang lebih rinci akan membantu. TC0#TC0TC0
Derrick Stolee
1
dikenal AFAIK! dan ini terlalu mudah. Tapi saya tidak melihat di mana argumen itu pecah. ps: Saya kira saya tahu begitu, definisi saya tidak baik (sama dengan # P ) dan itu masalahnya. #TC0#P
Kaveh
1
@Artem, didefinisikan sebagai jumlah menerima jalur dari N L mesin, dan N L mesin hanya dapat menggunakan logaritma (di | y | ) jumlah ruang untuk menebak x . Kami menduga terlalu banyak bit jika kita menggunakan definisi saya menulis, sebuah A C 0 perhitungan dengan polynomially banyak dugaan akan menangkap N P , sama menghitung jumlah x s ukuran polinomial bahwa A C 0 mesin menerima mereka akan memberikan # P#L.NL.NL.|y|xSEBUAHC0NPxSEBUAHC0#P(tebak juga perhitungannya dan verifikasi bahwa itu benar-benar perhitungan yang menerima).
Kaveh

Jawaban:

16

Ini bukan jawaban saya, tetapi Terrence Tao memberikan jawaban yang indah untuk pertanyaan ini di MathOverflow.

Inilah beberapa baris pertama jawabannya. Untuk membaca jawaban yang lengkap, ikuti tautannya.

Ada pengamatan cerita rakyat bahwa jika seseorang dapat dengan cepat menghitung jumlah faktor prima dari bilangan bulat, maka orang mungkin akan dapat dengan cepat memfaktorkan n sepenuhnya. Jadi masalah penghitungan faktor prima diyakini memiliki kesulitan yang sebanding dengan memfaktorkan sendiri.

(Saya tidak yakin apakah ini harus menjadi jawaban atau komentar. Tapi itu benar-benar jawaban, meskipun tidak ditulis oleh saya. Saya sudah membuat jawaban Community Wiki sehingga dapat di-unduh atau diterima tanpa perlu. memberi saya reputasi.)

Robin Kothari
sumber
5
Menurut pendapat saya, sebuah penunjuk ke jawaban seperti ini layak mendapat poin reputasi (jadi seharusnya bukan wiki komunitas), tetapi saya mengerti bahwa orang yang berbeda memiliki pandangan yang berbeda.
Tsuyoshi Ito
Tapi ini bukan pengurangan formal ....
arnab
1
@arnab: Tidak, tidak. Itulah sebabnya ia menulis, "maka orang mungkin akan dapat dengan cepat memfaktorkan n sepenuhnya."
Tsuyoshi Ito
1

Seperti yang telah dinyatakan orang lain, menghitung faktor-faktor kemungkinan besar akan membutuhkan anjak piutang n. Namun, pembagian sidang dapat mengikat sejumlah faktor. Anda tahu, misalnya, bahwa memiliki paling banyak n faktor, karena tidak ada faktor yang bisa kurang dari 2. Dengan menguji apakah N dapat dibagi 2, Anda juga tahu bahwa N memiliki paling banyak faktor log 3 ( N ) , dll. Kelemahannya adalah bahwa setiap pengurangan ukuran semakin sulit - Anda harus menguji hingga N 1 / p untuk mengesampingkan N yang mengandung lebih dari faktor p .NnNNlog3(N)N1/halNhal

Foo Barrigno
sumber