Равная суперпозиция четырёх различных битовых строк
Входы — $N$ кубитов в $|0\ldots0\rangle$ и массив bits типа Bool[][] размером $4\times N$. Строка bits[i] содержит $N$ битов; все четыре строки различны.
Напишите операцию на языке Q#, подготавливающую равную суперпозицию четырёх заданных базисных состояний.
Например, при $N=3$ и bits=[[false,true,false],[true,false,false],[false,false,true],[true,true,false]] требуется
$$\frac{|010\rangle+|100\rangle+|001\rangle+|110\rangle}{2}.$$
Подсказка в заготовке: можно выделять вспомогательные кубиты.
Заготовка Q#:
namespace Kata {
operation FourBitstringSuperposition (qs : Qubit[], bits : Bool[][]) : Unit {
// Hint: remember that you can allocate extra qubits.
// Implement your solution here...
}
}