다음을 통해 공유


PrepareUniformSuperposition 연산

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

operation PrepareUniformSuperposition(nStates : Int, qubits : Qubit[]) : Unit is Adj + Ctl

요약

little-endian qubits 레지스터에서 0부터 정수를 nStates - 1 나타내는 상태의 균일한 중첩을 준비합니다.

설명

입력 상태 $\ket{0\cdots 0}$가 주어지면 이 연산은 모든 숫자 상태 $0$에서 $M-1$까지의 균일한 중첩을 준비합니다. 즉, $$ \begin{align} \ket{0} \mapsto \frac{1}{\sqrt{M}} \sum_{j=0}^{M - 1} \ket{j} \end{align} $$

이 작업은 인접 가능하지만 이 경우 레지스터가 첫 번째 nStates 기저 상태에 대해 균일한 중첩에 있어야 합니다qubits.

입력

n스테이트

준비할 균일 중첩에 있는 상태의 수입니다.

등록기

준비된 상태를 저장하기 위한 little-endian 큐비트 레지스터입니다. 0 상태 $\ket{0\cdots 0}$에서 초기화된 것으로 간주됩니다. 이 레지스터는 숫자 $M-1$을 저장할 수 있을 만큼 충분히 길어야 하며, 이는 $2^{Length(qubits)} >= M$임을 의미합니다.

예시

   use qs = Qubit[4];
   PrepareUniformSuperposition(3, qs);
   DumpRegister(qs); // The state is (|0000>+|0100>+|1000>)/√3
   ResetAll(qs);