Share via


Operação ApproximatelyPrepareArbitraryStateCP

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

Tendo em conta um conjunto de coeficientes e um registo quântico codificado por um pequeno endiano, prepara um estado nesse registo descrito pelos coeficientes especificados, até uma determinada tolerância de aproximação.

operation ApproximatelyPrepareArbitraryStateCP (tolerance : Double, coefficients : Microsoft.Quantum.Math.ComplexPolar[], qubits : Microsoft.Quantum.Arithmetic.LittleEndian) : Unit is Adj + Ctl

Description

Esta operação prepara um estado quântico arbitrário $\ket{\psi}$ com coeficientes complexos $r_j e^{i t_j}$ do estado de base computacional $n $\ket{0 \cdots 0}$. Em particular, a ação desta operação pode ser simulada por uma transformação unitária $U$ que atua no estado de todos os zeros como

$$ \begin{align} U\ket{0...0} & = \ket{\psi} \\ & = \frac{ \sum_{j=0}^{2^n-1} r_j e{i t_j} \ket{j} }{ \sqrt{\sum_{j=0}^{2^n-1} |r_j|^2} }. \end{align} $$

Entrada

tolerância: Duplo

A tolerância de aproximação a utilizar ao preparar o estado especificado.

coeficientes: ComplexPolar[]

Matriz de até $2^n$ coeficientes complexos representados pelo seu valor absoluto e fase $(r_j, t_j)$. O coeficiente $j$th indexa o estado de número $\ket{j}$ codificado em formato de pequeno-endiano.

qubits: LittleEndian

Qubit register encoding number states in little-endian format. Espera-se que esta ação seja inicializada no estado de base computacional $\ket{0...0}$.

Saída: Unidade

Observações

Os coeficientes de entrada negativos $r_j < 0$ serão tratados como positivos com o valor $|r_j|$. coefficients será acolchoado com os elementos $(r_j, t_j) = (0,0, 0,0)$ se forem especificados menos de $2^n$.

Referências