La breve risposta
I computer quantistici sono in grado di eseguire subroutine di un algoritmo per factoring, esponenzialmente più veloce di qualsiasi altra controparte classica nota. Questo non significa che i computer classici NON POSSONO farlo troppo velocemente, non sappiamo fino ad oggi un modo per gli algoritmi classici di funzionare in modo efficiente come gli algoritmi quantistici
La lunga risposta
I computer quantistici sono bravi nelle trasformazioni discrete di Fourier. C'è molto da giocare qui che non è catturato solo da " è parallelo " o " è veloce ", quindi entriamo nel sangue della bestia.
Il problema del factoring è il seguente: Dato un numero dove sono numeri primi, come si recupera e ? Un approccio consiste nel notare quanto segue:p , q p qN=pqp,qpq
Se guardo un numero , allora condivide un fattore comune con , oppure no.x NxmodNxN
Se condivide un fattore comune e non è un multiplo di stesso, allora possiamo facilmente chiedere quali sono i fattori comuni di e (attraverso l'algoritmo euclideo per i maggiori fattori comuni).N x NxNxN
Ora un fatto non così ovvio: l'insieme di tutti che non condividono un fattore comune con formano un gruppo moltiplicativo . Cosa significa? Puoi vedere la definizione di un gruppo in Wikipedia qui . Lascia che l'operazione di gruppo sia la moltiplicazione per riempire i dettagli, ma tutto ciò che ci interessa davvero qui è la seguente conseguenza di quella teoria che è: la sequenzaN mod NxNmodN
x0modN,x1modN,x2modN,...
è periodico, quando non condividono fattori comuni (prova , ) per vederlo in prima persona come:x = 2 N = 5x,Nx=2N=5
1mod5=1,4mod5=4,8mod5=3,16mod5=1.
Ora quanti numeri naturali meno di non condividono alcun fattore comune con ? A cui risponde la funzione totient di Eulero , è .N N ( p - 1 ) ( q - 1 )xNN(p−1)(q−1)
Infine, toccando l'argomento della teoria dei gruppi, la lunghezza delle catene ripetute
x0modN,x1modN,x2modN,...
divide quel numero . Quindi, se conosci il periodo delle sequenze di poteri di , puoi iniziare a mettere insieme un'ipotesi di cosa sia . Inoltre, se sai cos'è e cos'è (che è N non dimenticare!), Allora hai 2 equazioni con 2 incognite, che possono essere risolte attraverso l'algebra elementare per separare .x N(p−1)(q−1)( p - 1 ) ( q - 1 ) ( p - 1 ) ( q - 1 ) p q p , qxNmod5(p−1)(q−1)(p−1)(q−1)pqp,q
Da dove arrivano i computer quantistici? La scoperta del periodo. C'è un'operazione chiamata trasformata di Fourier, che accetta una funzione scritta come somma delle funzioni periodiche dove sono numeri, sono funzioni periodiche con il periodo e la associa a una nuova funzione tale che .a 1 e 1 + a 2 e 2 . . . una i e i p i f f ( p i ) = un iga1e1+a2e2...aieipif^f^(pi)=ai
Il calcolo della trasformata di Fourier viene di solito introdotto come integrale, ma quando si desidera semplicemente applicarlo a una matrice di dati (l'I ° elemento della matrice è ) è possibile utilizzare questo strumento chiamato Trasformata di Fourier discreta che ammonta moltiplicare il tuo "array" come se fosse un vettore, per una matrice unitaria molto grande.f(I)
Enfasi sulla parola unitaria: è una proprietà davvero arbitraria qui descritta . Ma la chiave da asporto è la seguente:
Nel mondo della fisica, tutti gli operatori obbediscono allo stesso principio matematico generale: l' unità .
Ciò significa che non è irragionevole replicare tale operazione di matrice DFT come operatore quantistico.
Ora qui è dove ottiene profonda un Qubit array può rappresentare possibili elementi di un array (consultare ovunque online per una spiegazione di che o far cadere un commento).n2n
Allo stesso modo un operatore quantico Qubit può agire su tutto lo spazio quantico e produrre una risposta che possiamo interpretare.n2n
Vedi questo articolo di Wikipedia per maggiori dettagli.
Se riusciamo a fare questa trasformazione di Fourier su un set di dati esponenzialmente ampio, usando solo Qubits, allora possiamo trovare il periodo molto rapidamente.n
Se riusciamo a trovare il periodo molto rapidamente, possiamo rapidamente assemblare una stima per(p−1)(q−1)
Se riusciamo a farlo così velocemente, data la nostra conoscenza di , possiamo provare a controllare .N=pqp,q
È quello che sta succedendo qui, a un livello molto alto.