다음을 통해 공유


PreparePureStateD 작업

정규화된 이름: Std.StatePreparation.PreparePureStateD

operation PreparePureStateD(coefficients : Double[], qubits : Qubit[]) : Unit is Adj + Ctl

요약

계수 집합과 big-endian 양자 레지스터가 지정된 계수에 설명된 해당 레지스터의 상태를 준비합니다.

설명

이 작업은 n-큐비트 계산 기준 상태 |0...0⟩ 계수 aj를 사용하여 임의 양자 상태 |ψ⟩ 준비합니다.

all-zeros 상태의 U 동작은 $$ \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{정렬} $$

입력

계수

최대 2개의 실제 계수 배열입니다. j-th 계수는 big-endian 형식으로 인코딩된 숫자 상태 |j⟩ 인덱싱합니다.

큐비트

큐비트 레지스터 인코딩 숫자 상태는 big-endian 형식입니다. 계산 기준 상태 |0...0⟩ 초기화될 것으로 예상됩니다.

비고

2보다 작으면 coefficients 정규화되고 aj = 0.0 요소로 패딩됩니다.

예시

다음 코드 조각은 큐비트 레지스터 qubits양자 상태 |ψ⟩=√(1/8)|0⟩+√(7/8)|2⟩=√(1/8)|00⟩+√(7/8)|10⟩을 준비합니다.

let amplitudes = [Sqrt(0.125), 0.0, Sqrt(0.875), 0.0];
use qubits = Qubit[2];
PreparePureStateD(amplitudes, qubits);

참고문헌

  • arXiv:quant-ph/0406176 "양자 논리 회로의 합성", 비벡 V. 셴데, 스티븐 S. 불록, 이고르 L. 마르코프

또한 참조하십시오

  • Std.StatePreparation.ApproximatelyPreparePureStateCP