№ 1633Квантовые вычисленияУровень 2

Определить знак собственного значения одним битом фазы

Входы:

1. Однокубитная унитарная операция $U$ с доступным управляемым вариантом Controlled. Соответствующее собственное значение равно $+1$ или $-1$, то есть собственная фаза равна 0 или $1/2$.
2. Собственное состояние $|\psi\rangle$, заданное операцией подготовки $P$: $P|0\rangle=|\psi\rangle$.

Напишите операцию на языке Q#, возвращающую собственное значение, соответствующее $|\psi\rangle$: целое $+1$ или $-1$.

Подсказка источника: достаточно выделить ровно два кубита и вызвать Controlled U ровно один раз.

Заготовка Q#:

namespace Kata {
    operation OneBitPhaseEstimation(U : Qubit => Unit is Ctl, P : Qubit => Unit) : Int {
        // Implement your solution here...

        return 0;
    }
}