Фазовый оракул для отрицания бита
Вход — кубит в произвольном состоянии $|\psi\rangle=\alpha|0\rangle+\beta|1\rangle$.
Напишите операцию на языке Q#, реализующую фазовый оракул функции $f(x)=1-x$: для каждого базисного состояния она должна действовать как
$$U_f|x\rangle=(-1)^{f(x)}|x\rangle.$$
То есть состоянию $|0\rangle$ требуется фаза $-1$, а $|1\rangle$ — фаза $+1$.
Подсказка источника: $(-1)^{1-x}=(-1)(-1)^x$. Можно ли получить такое действие последовательным применением оракулов постоянной функции $f=1$ и функции $f(x)=x$?
Заготовка Q#:
namespace Kata {
import Std.Math.*;
operation PhaseOracle_OneMinusX (x : Qubit) : Unit is Adj + Ctl {
// Implement your solution here...
}
}Предложить решение
Войти, чтобы отправить материал.