Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nome totalmente qualificado: Std.StatePreparation.PrepareUniformSuperposition
operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl
Resumo
Prepara uma superposição uniforme de estados que representam inteiros de 0 a nStates - 1 um registro little-endian qubits .
Descrição
Dado um estado de entrada $\ket{0\cdots 0}$, esta operação prepara uma sobreposição uniforme de todos os estados numéricos $0$ para $M-1$. Em outras palavras, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$
A operação é admissível, mas exige que qubits , nesse caso, o registo tenha uma sobreposição uniforme sobre os primeiros nStates estados de base.
Entrada
nEstados
O número de Estados na sobreposição uniforme a preparar.
registar
O registro de qubit little-endian para armazenar o estado preparado. Presume-se que seja inicializado no estado zero $\ket{0\cdots 0}$. Esse registro deve ser longo o suficiente para armazenar o número $M-1$, o que significa que $2^{Length(qubits)} >= M$.
Exemplo
use qs = Qubit[4];
PrepareUniformSuperposition(3, qs);
DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
ResetAll(qs);