Share via


Função StatePreparationPositiveCoefficients

Aviso

Esta documentação refere-se ao QDK Clássico, que foi substituído pelo QDK Moderno.

https://aka.ms/qdk.api Veja a documentação da API para o QDK Moderno.

Espaço de nomes: Microsoft.Quantum.Preparation

Pacote: Microsoft.Quantum.Standard

Aviso

StatePreparationPositiveCoefficients foi preterido. Em alternativa , utilize a operação PrepareArbitraryStateD .

Devolve uma operação que prepara o estado quântico especificado.

A operação devolvida $U$ prepara um estado quântico arbitrário $\ket{\psi}$ com coeficientes positivos $\alpha_j\ge 0$ do estado de base computacional $n $\ket{0...0}$.

A ação de U num registo recentemente alocado é dada por $$ \begin{align} U \ket{0\cdots 0} = \ket{\psi} = \frac{\sum_{j=0}^{2^n-1}\alpha_j \ket{j}}{\sqrt{\sum_{j=0}^{2^n-1}|\alpha_j|^2}}. \end{align} $$

function StatePreparationPositiveCoefficients (coefficients : Double[]) : (Microsoft.Quantum.Arithmetic.LittleEndian => Unit is Adj + Ctl)

Entrada

coeficientes: Duplo[]

Matriz de até $2^n$ coeficientes $\alpha_j$. O coeficiente $j$th indexa o estado de número $\ket{j}$ codificado em formato little-endian.

Saída: LittleEndian =>Unit is Adj + Ctl

Uma operação unitária de preparação de estado $U$.

Exemplo

O fragmento seguinte prepara o estado quântico $\ket{\psi}=\sqrt{1/8}\ket{0}+\sqrt{7/8}\ket{2}$ no registo qubitsLEde qubits .

let amplitudes = [Sqrt(0.125), 0.0, Sqrt(0.875), 0.0];
let op = StatePreparationPositiveCoefficients(amplitudes);
using (qubits = Qubit[2]) {
    let qubitsLE = LittleEndian(qubits);
    op(qubitsLE);
}

Observações

Os coeficientes de entrada negativos $\alpha_j < 0$ serão tratados como positivos com o valor $|\alpha_j|$. coefficients será preenchido com os elementos $\alpha_j = 0,0$ se forem especificados menos de $2^n$.