Фазовый оракул старшего разряда
Вход — массив из $N$ кубитов в произвольном состоянии. Разряды базисного вектора $|x\rangle=|x_0\ldots x_{N-1}\rangle$ записаны от старшего к младшему: старший разряд хранится в первом кубите массива.
Напишите операцию на языке Q#, реализующую фазовый оракул функции $f(x)=x_0$:
$$U_f|x\rangle=(-1)^{x_0}|x\rangle.$$
Преобразование должно действовать так на каждый базисный вектор, а следовательно, и на их суперпозиции.
Заготовка Q#:
namespace Kata {
operation PhaseOracle_MostSignificantBit(x : Qubit[]) : Unit is Adj + Ctl {
// Implement your solution here...
}
}