?


16

Mentre leggevo il blog di Dick Lipton, mi sono imbattuto nel seguente fatto vicino alla fine del suo post su Bourne Factor :

Se, per ogni , esiste una relazione della forma ( 2 n ) ! = m - 1 k = 0 a k b c k k dove m = p o l y ( n ) , e ciascuno degli a k , b k e c k sono p o l y ( n ) in lunghezza bit, quindi il factoring ha circuiti di dimensioni polinomiali.n

(2n)!=k=0m1akbkck
m=poly(n)akbkckpoly(n)

In altre parole, il , che ha un numero esponenziale di bit , può essere potenzialmente rappresentato in modo efficiente.(2n)!

Ho alcune domande:

  • Qualcuno potrebbe fornire una prova della relazione di cui sopra, dirmi il nome e / o fornire riferimenti?
  • Se dovessi darvi , m e ciascuno dei un k , b k e c k , mi può fornire un algoritmo di tempo polinomiale per verificare la validità del rapporto (cioè è a N P )?nmakbkckNP

4
Quel post sul blog non rivendica davvero il contrario? Cioè, se le equazioni della forma sopra hanno soluzioni in generale , quindi il factoring ha circuiti di dimensioni polinomiali. (2n)!=
mikero,

3
Penso che tu abbia effettivamente scritto il contrario di ciò che Dick Lipton ha scritto. Dice che se esiste una tale equazione per ogni , il factoring ha circuiti di dimensioni polinomiali. Quindi l'implicazione è che se il factoring è difficile in modo non uniforme (per infiniti molti n ), allora non esistono equazioni della forma sopra (per infinitamente molti n ). nnn
Sasho Nikolov,

@mikero, SashoNikolov, entrambi avete ragione, mi scuso. Ho modificato la mia domanda.
user834,

1
si noti che "algoritmo del tempo polinomiale" di solito significa un algoritmo uniforme. Il post di Lipton afferma solo l'esistenza di una famiglia di circuiti polisize per il factoring.
Sasho Nikolov,

1
Nota che, affinché questa struttura è vero, , b k e c k devono essere p o l y ( n ) in dimensione in bit / come dichiarato Lipton blog /, e p o l y ( 2 n ) come interi . La tua definizione non è chiara. akbkckpoly(n)poly(2n)
Gopi,

Risposte:


8

Commenterò perché una relazione come nella domanda (per ogni n ) aiuta il factoring. Non riesco proprio a finire l'argomento, ma forse qualcuno può.

(2n)!=k=0m1akbkck
n

La prima osservazione è che una relazione come sopra (e più in generale, l'esistenza di circuiti aritmetici polivalenti per ) Fornisce un circuito polivalente per il calcolo ( 2 n ) ! mod x per x dato in binario: valuta semplicemente la somma modulo x , usando esponenziazione mediante quadratura ripetuta.(2n)!(2n)!modxxx

Ora, se potessimo calcolare per arbitraria y , potremmo fattorizzare x : usando la ricerca binaria, troviamo la più piccola y tale che gcd ( x , y ! ) 1 (che possiamo calcolare usando gcd ( x , ( y ! mod x ) ) ). Quindi y deve essere il più piccolo divisore primo di x .y!modxyxygcd(x,y!)1gcd(x,(y!modx))yx

Se possiamo fare solo potenze di per y , possiamo ancora provare a calcolare gcd ( x , ( 2 n ) ! ) Per ogni n log x . Uno di questi sarà un divisore non banale di x , ad eccezione del caso sfortunato quando esiste una n tale che x è coprime a ( 2 n ) ! e divide ( 2 n + 1 ) ! . Ciò equivale a dire che x2ygcd(x,(2n)!)nlogxxnx(2n)!(2n+1)!xè privo di quadrati e tutti i suoi fattori primi hanno la stessa lunghezza di bit. Non so cosa fare in questo caso (piuttosto importante, cfr. Interi di Blum).


Se la relazione vale (per tutti ), allora forse vale anche (con una diversa scelta di un k , b k e c k ) quando si sostituisce 2 con un altro (piccolo) prime, p . Si potrebbe presumibilmente cercare fino a quando non viene trovata una p tale che x sia coprime a ( p n ) ! e non ( p n + 1 ) ! nakbkck2ppx(pn)!(pn+1)!
user834,
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.