Есть квантовый компьютер с памятью 3 кубита. Определим однобитовые гейты\[\mathrm{H1}=\mathrm{Not}=\left(\begin{array}{cc}0&1\\1&0\end{array}\right)\,,\quad \mathrm{H2}=\mathrm{H}=\frac1{\sqrt{2}}\left(\begin{array}{cc}1&1\\1&-1\end{array}\right)\,,\quad \mathrm{H3}=\frac1{\sqrt{3}}\left(\begin{array}{cc}\sqrt{2}&1\\1&-\sqrt{2}\end{array}\right)\]
и их управляемые варианты $\mathrm{cnH1}\,,\ \mathrm{cnH2}\,,\ \mathrm{cnH3}$, которые выполняют над битом соответствующее преобразование только если остальные два бита равны единице.
Система комманд нашего компьютера состоит из четырех комманд: $\mathrm{H1}\,,\ \mathrm{cnH1}\,,\ \mathrm{cnH2}\,,\ \mathrm{cnH3}$. Надо написать алгоритм, который при подаче на вход двоичного числа от 0 до 7 строит состояние (с определенным спином и проекцией) с соответствующим номером:
и их управляемые варианты $\mathrm{cnH1}\,,\ \mathrm{cnH2}\,,\ \mathrm{cnH3}$, которые выполняют над битом соответствующее преобразование только если остальные два бита равны единице.
Система комманд нашего компьютера состоит из четырех комманд: $\mathrm{H1}\,,\ \mathrm{cnH1}\,,\ \mathrm{cnH2}\,,\ \mathrm{cnH3}$. Надо написать алгоритм, который при подаче на вход двоичного числа от 0 до 7 строит состояние (с определенным спином и проекцией) с соответствующим номером:
- $\sqrt{1/2}(|001\rangle-|010\rangle)$
- $\sqrt{1/2}(|101\rangle-|110\rangle)$
- $\sqrt{1/6}(|001\rangle+|010\rangle-2|100\rangle)$
- $\sqrt{1/6}(|101\rangle+|110\rangle-2|011\rangle)$
- $|000\rangle$
- $\sqrt{1/3}(|001\rangle+|010\rangle+|100\rangle)$
- $\sqrt{1/3}(|101\rangle+|110\rangle+|011\rangle)$
- $|111\rangle$
Boilerplate
|
Your Program
|
Комментариев нет:
Отправить комментарий