Различить две заданные битовые строки одним измерением
Входы — массив из $N$ кубитов и две битовые строки bits1, bits2 типа Bool[]. Гарантируется, что квантовое состояние совпадает с одним из двух базисных состояний, заданных этими строками. Обе строки имеют длину $N$ и различаются хотя бы в одной позиции. Значения false и true обозначают $|0\rangle$ и $|1\rangle$.
Напишите операцию на языке Q#, возвращающую 0 для первой строки и 1 для второй. Разрешено ровно одно измерение.
Например, для [false, true, false] и [false, false, true] ответ 0 соответствует $|010\rangle$, ответ 1 — $|001\rangle$.
Конечное состояние кубитов неважно.
Заготовка Q#:
namespace Kata {
operation TwoBitstringsMeasurement(qs : Qubit[], bits1 : Bool[], bits2 : Bool[]) : Int {
// Implement your solution here...
return -1;
}
}