Различить неортогональные состояния с точностью не ниже 80 процентов
Вход — кубит в $|0\rangle$ или $|+\rangle=(|0\rangle+|1\rangle)/\sqrt2$. Напишите операцию на языке Q#, возвращающую true для $|0\rangle$ и false для $|+\rangle$.
Операция вызывается многократно; в каждом вызове оба входных состояния равновероятны. Общая доля правильных ответов должна быть не ниже 80 процентов.
Конечное состояние кубитов неважно.
Это задача различения квантовых состояний с минимальной ошибкой: допускаются неправильные ответы, но требуется ограничить их частоту.
Заготовка Q#:
namespace Kata {
import Std.Math.*;
operation IsQubitZeroOrPlus (q : Qubit) : Bool {
// Implement your solution here...
return true;
}
}Предложить решение
Войти, чтобы отправить материал.