Бөлісу құралы:


Операция PrepareUniformSuperposition

Полное имя: Std.StatePreparation.PrepareUniformSuperposition

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

Сводка

Подготавливает равномерную суперпозицию состояний, представляющих целые числа от 0 до nStates - 1 1 в регистре с прямым порядком байтов qubits .

Описание

При заданном входном состоянии $\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} $$

Операция является сопрягаемой, но требует, чтобы qubits регистр находился в равномерной суперпозиции над первыми nStates базисными состояниями в этом случае.

Ввод

Государства

Количество состояний в равномерной суперпозиции, которое необходимо подготовить.

регистрация

Регистр кубитов с прямым порядком байтов для хранения подготовленного состояния. Предполагается, что он инициализирован в нулевом состоянии $\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);