Исключить одно из трёх возможных состояний кубита
Вход — кубит в одном из трёх равновероятных состояний:
$$|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;
}
}Сообщить об ошибке
Войти, чтобы отправить материал.