Scrivere un numero come due quadrati e scrivere i fattori di un numero è altrettanto difficile?


8

Lascia che e siano i seguenti:L1L2

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

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

RichiediL1PL2

Prova di schizzo

Se voglio sapere se .rL1

Il numero di soluzioni intere per è dato dax2+y2=r

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

Quindi . Quindi, rispondere è " ?" è al massimo difficile rispondere come "quali sono i divisori di ?"L1={r:g(r)0}rL1r

Quello che vorrei sapere è se questo è vero il contrario. È vero che se avessi una macchina che potrebbe dirmi in tempo costante se potrei creare una macchina che potrebbe rispondere "is ?" in tempo polinomiale?rL1(M,N)L2

motivazioni

Questa domanda è nata da una discussione su questa domanda .

Scuse Sono davvero solo un membro math.se che ha ottenuto perso e vagò a cs.se. Fammi sapere se la mia domanda è chiara e conforme agli standard di questo sito. Sono felice di apportare correzioni.


Sto usando correttamente? P
Mason,

1
La tua riduzione è corretta, ma la tua conclusione che è "dura quanto" non è corretta. solo che è al massimo duro come . In particolare, in realtà mostri che è al massimo difficile come un caso molto limitato di , il che potrebbe essere molto semplice. L1pL2L1L2L1L2L1L2
Shaull

1
Invece di "soddisfare un cerchio", un termine migliore potrebbe essere "essere una somma di due quadrati".
Yuval Filmus,

1
@Shaull, ho cambiato un po 'di lingua per riflettere il tuo commento.
Mason,

1
Il calcolo è infatti noto per essere duro come il factoring, fino a una riduzione del tempo polinomiale randomizzata. Vedi Bach, Miller e Shallit: somme di divisori, numeri perfetti e factoring . dnd
Emil Jeřábek,

Risposte:


5

Ecco la situazione per quanto posso dire:

Il modo più efficiente noto per testare l'appartenenza a è il fattore . Nessun algoritmo più efficiente sembra essere noto.L1r

Tuttavia, non vi è alcuna riduzione evidente per dimostrare . In altre parole, se avessimo una macchina per decidere , non c'è modo semplice di usarlo per fattorizzare. Se vogliamo fattorizzare un numero , siamo in grado di verificare se , ma questo ci dà solo un po 'di informazioni circa i fattori di . Testare multipli di (ovvero se per un numero intero ) non ci fornisce ulteriori informazioni, poiché sapere se sufficiente per prevedere se per tuttiL2PL1L1NNL1NNcNL1cNL1cNL1c>0. Anche testare altri numeri non sembra aiutare in alcun modo ovvio. (Verifica se per qualche altro numero non sembra fornire alcuna informazione utile, se ; e se avessimo un modo per trovare un altro numero tale che , sapremmo già come fattore, ma ovviamente non sappiamo come farlo - quindi è improbabile che qualsiasi numero che sappiamo come generare ci dia qualche utile informazioni sui fattori di ) Questa non è una prova; è solo un'intuizione a mano.NL1Ngcd(N,N)=1Ngcd(N,N)1N

Quindi sembra plausibile che possa essere più facile di e sembra anche plausibile che possano avere le stesse difficoltà. Non sono a conoscenza di ulteriori risultati su questo argomento.L1L2

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.