W-состояние на произвольном числе кубитов
Вход — $N$ кубитов в $|0\ldots0\rangle$; $N$ не обязательно является степенью двойки. Напишите операцию на языке Q#, подготавливающую W-состояние: равную суперпозицию $N$ базисных строк длины $N$, содержащих ровно одну единицу.
Например, при $N=3$ требуется $(|100\rangle+|010\rangle+|001\rangle)/\sqrt3$.
Подсказка источника: можно изменить сигнатуру операции, чтобы объявить её управляемый вариант.
Заготовка Q#:
namespace Kata {
operation WState_Arbitrary (qs : Qubit[]) : Unit {
// Implement your solution here...
}
}