Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nombre completo: Std.StatePreparation.PrepareUniformSuperposition
operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl
Resumen
Prepara una superposición uniforme de estados que representan enteros del 0 al nStates - 1 0 en un registro little-endian qubits .
Descripción
Dado un estado de entrada $\ket{0\cdots 0}$, esta operación prepara una superposición uniforme de todos los estados numéricos $0$ a $M-1$. En otras palabras, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$
La operación es adherible, pero requiere que qubits el registro esté en una superposición uniforme sobre los primeros nStates estados de base en ese caso.
Entrada
nEstados
El número de estados en la superposición uniforme que se va a preparar.
registro
El registro de qubit little-endian para almacenar el estado preparado. Se supone que se inicializa en el estado cero $\ket{0\cdots 0}$. Este registro debe ser lo suficientemente largo para almacenar el número $M-1$, lo que significa que $2^{Length(qubits)} >= M$.
Ejemplo
use qs = Qubit[4];
PrepareUniformSuperposition(3, qs);
DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
ResetAll(qs);