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

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...

    }
}