Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Полное имя: 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);