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

Декодировать два бита из пары Белла

Входы — qAlice, кубит, полученный от Алисы, и qBob, часть запутанной пары, принадлежащая Бобу. Кодирование соответствует правилу предыдущего задания:

Соответствие сообщения совместному состоянию кубитов в порядке Алиса,Боб:

(0,0): $|\Phi^+\rangle=(|00\rangle+|11\rangle)/\sqrt2$.

(0,1): $|\Psi^+\rangle=(|01\rangle+|10\rangle)/\sqrt2$.

(1,0): $|\Phi^-\rangle=(|00\rangle-|11\rangle)/\sqrt2$.

(1,1): $|\Psi^-\rangle=(|01\rangle-|10\rangle)/\sqrt2$.

Напишите операцию на языке Q#, извлекающую из кубитов два классических бита и возвращающую message как кортеж (Bool,Bool). Конечное состояние кубитов несущественно.

В исходнике решение проверяется в полном протоколе: нужно правильно передать сообщение.

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

namespace Kata {
    operation DecodeMessageFromQubits(qAlice : Qubit, qBob : Qubit) : (Bool, Bool) {
        // Implement your solution here...

        return (false, false);
    }
}