Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Полное имя: 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);