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

Исключить одно из трёх возможных состояний кубита

Вход — кубит в одном из трёх равновероятных состояний:

$$|A\rangle=(|0\rangle+|1\rangle)/\sqrt2,$$

$$|B\rangle=(|0\rangle+\omega|1\rangle)/\sqrt2,$$

$$|C\rangle=(|0\rangle+\omega^2|1\rangle)/\sqrt2,$$

где $\omega=e^{2\pi i/3}$. Напишите операцию на языке Q#, возвращающую 1 или 2 для $A$, 0 или 2 для $B$, 0 или 1 для $C$. То есть требуется безошибочно назвать номер состояния, которым вход не является.

Ошибочные ответы запрещены. Операция вызывается многократно, состояния в каждом вызове выбираются равновероятно.

Конечное состояние кубитов неважно.

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

namespace Kata {
    import Std.Math.*;

    operation IsQubitNotInABC(q : Qubit) : Int {
        // Implement your solution here...
        return -1;
    }
}

Предложить решение

Войти, чтобы отправить материал.