De hecho, el algoritmo cuántico para encontrar el orden consiste en el algoritmo cuántico de estimación de fase aplicado al siguiente operador unitario:

con
, actuando no trivialmente solo cuando
.
Este operador tiene como autoestados:
![{\displaystyle |u_{s}>\equiv {\frac {1}{\sqrt {r}}}\sum _{k=0}^{r-1}exp[{\frac {-i2\pi sk}{r}}]|x^{k}\ mod\ N>}](https://wikimedia.org/api/rest_v1/media/math/render/svg/775391e6bbb81c4d080848c2ba753f9390368246)
Fácilmente se comprueba que efectivamente al actuar el operador
sobre este autoestado obtenemos el mismo autoestado salvo una fase (su autovalor):
![{\displaystyle U|u_{s}>\equiv {\frac {1}{\sqrt {r}}}\sum _{k'=0}^{r-1}exp[{\frac {-i2\pi sk'}{r}}]|x^{k'+1}\ mod\ N>={\frac {1}{\sqrt {r}}}\sum _{k=1}^{r}exp[{\frac {-i2\pi s(k-1)}{r}}]|x^{k}\ mod\ N>=exp[{\frac {i2\pi s}{r}}]{\frac {1}{\sqrt {r}}}\sum _{k=1}^{r}exp[{\frac {-i2\pi sk}{r}}]|x^{k}\ mod\ N>=exp[{\frac {i2\pi s}{r}}]|u_{s}>}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c57957cf15dc7b19384f01c2e6e49c6040d2c70a)
Para recuperar el autoestado hemos necesitado que el sumando correspondiente a
sea igual al correspondiente a
, lo cual se cumple por la definición de orden que hemos dado.
La estimación de fase proporcionará estos autovalores del cual obtendremos el orden. Para llevar a cabo este procedimiento, hay dos requerimientos:
- Tener procedimientos eficientes para implementar una operación controlada
para cualquier entero
, lo que se consigue mediante la exponenciación modular.
- Ser capaces de preparar un autoestado con autovalor no trivial, que se toma como elección ad hoc como:[2][3]

Buscamos una transformación del tipo:

donde el primer
corresponde a los
qubits del primer registro e
corresponde al segundo registro, tal y como se explica en el algoritmo cuántico de estimación de fase.
Por lo visto anteriormente, es conocido que dicha transformación puede darse por medio de la aplicación del operador
:

donde se ha escrito
(el contenido del primer registro) en notación binaria.
Así, el circuito cuántico del algoritmo para encontrar el orden se resume en lo anterior donde los
qubits del primer registro son
y el estado del segundo registro es precisamente el autovector definido como
. Este algoritmo, como ya se ha visto en estimación de fase, proporciona el valor de
. Por tanto, ya solo queda ser capaces de hallar el valor de r, para lo cual se va a explicar a continuación la subrutina que habría que implementar:[2]
La fracción continua constituye una transformación sencilla y original de una fracción que tiene gran utilidad a la hora de estudiar números irracionales, y que en el contexto dentro del algoritmo de Shor no será más que una subrutina puramente clásica que no introducirá una mayor dificultad teórica. Esta idea se entiende muy bien explicándolo con un ejemplo sencillo:
![{\displaystyle {\frac {7}{33}}={\frac {1}{\frac {33}{7}}}={\frac {1}{4+{\frac {5}{7}}}}={\frac {1}{4+{\frac {1}{\frac {7}{5}}}}}={\frac {1}{4+{\frac {1}{1+{\frac {2}{5}}}}}}={\frac {1}{4+{\frac {1}{1+{\frac {1}{\frac {5}{2}}}}}}}={\frac {1}{4+{\frac {1}{1+{\frac {1}{2+{\frac {1}{2}}}}}}}}\longrightarrow [4,1,2,2]}](https://wikimedia.org/api/rest_v1/media/math/render/svg/22988b70214dd26d0b1e8657eaa86e6c866f24dd)
Con este procedimiento se puede conocer el cociente
con el previo conocimiento del correspondiente conjunto de enteros. Puesto que no es conocido dicho conjunto de enteros, básicamente se tiene que ir probando aleatoriamente combinaciones de enteros hasta que se obtiene el valor del cociente. Cuando se llega a esta situación basta con realizar marcha atrás el desarrollo y obtendremos unos
y
que ahora se verá que no tienen por qué ser los requeridos (
podría no ser el orden).
Como se puede entender, este algoritmo conlleva un tiempo de cómputo increíblemente alto en general, por lo que no constituye un método muy eficiente para obtener el orden. Además, este método podría dar un
que no coincida con el orden por dos motivos:
- Que el algoritmo de estimación de fase haya proporcionado un
erróneo, posibilidad que se puede minimizar cuanto se quiera aumentando el número de qubits
del primer registro en estimación de fase (aumentar el circuito).
- Que
y
tengan máximo común divisor distinto de 1 y por tanto
no sea el menor número posible que cumpla que
(módulo
).
Para estar seguros de que no se da este segundo motivo de error, se puede repetir el proceso un número alto de veces concreto que ahora razonaremos. Para ello, vamos a dar dos resultados útiles:
- Dos números son coprimos si su máximo común divisor es 1. Como consecuencia, cualquier número primo es coprimo con todos.
- Dado un número entero positivo
, hay como mínimo
números primos bajo este. Así, al elegir un número menor que
la probabilidad de que este número sea primo es como mínimo
.
Por lo contado hasta ahora, también se conoce que
. Puesto que la probabilidad de que conocido
se cumpla que
es un número primo (y por tanto coprimo con
) es como mínimo
, habría que elegir
aleatoriamente
veces para hallar (con alta probabilidad) un
primo. Sin embargo, no se conoce
. Por otro lado, se extrae inmediatamente de la definición de orden dada que
, no haciendo falta conocer
previamente, pues repitiendo el proceso de expansión de fracciones
veces aleatoriamente puede asegurarse de nuevo con alta probabilidad que uno de los valores de
hallados es primo. Para cada "elección aleatoria" de
y
hasta que se cumpla
(módulo
), pudiendo afirmar definitivamente que este es el orden.[2]