№ 1481Квантовая теория информацииУровень 2

Измерить кубит в заданном ортогональном базисе

Входы — угол $\alpha$ в радианах, представленный типом Double, и кубит в неизвестном состоянии. Задан базис

$$|A\rangle=\cos\alpha|0\rangle-i\sin\alpha|1\rangle,$$

$$|B\rangle=-i\sin\alpha|0\rangle+\cos\alpha|1\rangle.$$

Напишите операцию Q#, измеряющую кубит в этом базисе. Верните Zero для результата $A$ и One для результата $B$. После измерения кубит должен находиться в состоянии, соответствующем результату.

Подсказка источника: поворот $R_x$ переводит стандартный базис в базис $\{|A\rangle,|B\rangle\}$ и обратно.

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

namespace Kata {
    operation MeasureInABBasis(alpha : Double, q : Qubit) : Result {
        // Implement your solution here...

        return Zero;
    }
}