Apakah menulis angka sebagai dua kotak dan menulis faktor-faktor angka sama sulitnya?

8

Membiarkan L1 dan L2 menjadi yang berikut:

L1={r:x,yZ such that x2+y2=r}

L2={(N,M):M<N,1<dM such that d|N}

Klaim L1PL2

Bukti Sketsa

Jika saya ingin tahu apakah rL1.

Jumlah solusi integer untuk x2+y2=r diberikan oleh

g(r)=d|rχ(d) dimana χ(x)=sin(πx2)={1 when x1 mod 41 when x3 mod 40 when 2|x

Kemudian L1={r:g(r)0}. Maka yang harus dijawab adalah "rL1? "Apakah paling sulit untuk menjawab sebagai" apa pembagi r? "

Yang ingin saya ketahui adalah apakah ini benar sebaliknya. Apakah benar kalau saya punya mesin yang bisa memberi tahu saya dalam waktu yang konstan apakahrL1 bisakah saya membuat mesin yang bisa menjawab "adalah (M,N)L2? "dalam waktu polinomial?

Motivasi

Pertanyaan ini keluar dari diskusi tentang pertanyaan ini .

Maaf saya benar-benar hanya anggota math.se yang tersesat dan berjalan ke cs.se. Beri tahu saya jika pertanyaan saya jelas dan memenuhi standar situs ini. Saya senang melakukan koreksi.

Tukang batu
sumber
Apakah saya menggunakan Pbenar?
Mason
1
Pengurangan Anda L1pL2 benar, tetapi kesimpulan Anda itu L1 "sekeras" L2salah. Anda hanya menunjukkan ituL1adalah paling sekerasL2. Secara khusus, Anda benar-benar menunjukkan ituL1 paling keras seperti kasus yang sangat terbatas L2, yang mungkin sangat mudah.
Shaull
1
Alih-alih "memuaskan lingkaran", istilah yang lebih baik bisa "menjadi jumlah dari dua kotak".
Yuval Filmus
1
@ Samull, saya mengubah beberapa bahasa untuk mencerminkan komentar Anda.
Mason
1
Komputasi dndsebenarnya diketahui sama sulitnya dengan anjak piutang, hingga pengurangan waktu polinomial secara acak. Lihat Bach, Miller, dan Shallit: Jumlah pembagi, angka sempurna, dan anjak piutang .
Emil Jeřábek

Jawaban:

5

Inilah situasinya sejauh yang saya tahu:

Cara paling efisien untuk menguji keanggotaan di L1 adalah faktor r. Tidak ada algoritma yang lebih efisien yang diketahui.

Namun, tidak ada pengurangan yang jelas untuk dibuktikan L2PL1. Dengan kata lain, jika kita memiliki mesin untuk memutuskanL1, tidak ada cara mudah untuk menggunakannya untuk memfaktorkan. Jika kita ingin memfaktorkan angkaN, kita dapat memeriksa apakah NL1, tetapi ini hanya memberi kami sedikit informasi tentang faktor N. Menguji kelipatanN (yaitu apakah cNL1 untuk beberapa integer c) tidak memberi kami informasi tambahan, seperti mengetahui apakah NL1 cukup untuk memprediksi apakah cNL1 untuk semua c>0. Menguji nomor lain juga tidak membantu. (Menguji apakahNL1 untuk beberapa nomor lainnya N sepertinya tidak memberikan informasi yang berguna, jika gcd(N,N)=1; dan jika kita memiliki cara untuk menemukan nomor lain sedemikian rupa sehingga , kita sudah tahu bagaimana faktornya, tetapi tentu saja kita tidak tahu bagaimana melakukannya - jadi nomor berapa pun yang kami tahu cara menghasilkan tidak mungkin memberi kami informasi yang berguna tentang faktor-faktor ) Ini bukan bukti; itu hanya intuisi tangan.Ngcd(N,N)1N

Jadi tampaknya masuk akal bahwa mungkin lebih mudah daripada , dan juga masuk akal bahwa mereka mungkin memiliki kesulitan yang sama. Saya tidak mengetahui adanya hasil lebih lanjut tentang hal ini.L1L2

DW
sumber