Найти одиночную Z-ошибку трёхкубитного кода
Вход — три кубита либо в кодовом состоянии $|\psi_L\rangle=\alpha|+++\rangle+\beta|---\rangle$, либо в состоянии с одной ошибкой Z: Z применён к кубиту 0, 1 или 2. Других ошибок нет.
Напишите операцию на языке Q#, определяющую наличие ошибки и её позицию. Верните индекс ошибочного кубита либо -1 при отсутствии ошибки. Состояние кубитов после операции должно полностью сохраниться.
Заготовка Q#:
namespace Kata {
operation PhaseflipDetectError (qs : Qubit[]) : Int {
// Implement your solution here...
return -2;
}
}