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

Закодировать двоичную дробь в фазе первого кубита

Вход — регистр из $n$ кубитов в $|j_1\ldots j_n\rangle$. Напишите операцию на языке Q#, переводящую его из $|j_1\rangle\otimes|j_2\ldots j_n\rangle$ в

$$\frac{|0\rangle+e^{2\pi i f}|1\rangle}{\sqrt2}\otimes|j_2\ldots j_n\rangle,$$

где $f=0.j_1j_2\ldots j_n$ — двоичная дробь.

Подсказка источника: задача похожа на предыдущую, но бит $j_1$ кодируется на месте. Для этого пригодится однокубитное преобразование Фурье из первого упражнения.

Заготовка Q#:

namespace Kata {
    operation BinaryFractionQuantumInPlace(j : Qubit[]) : Unit is Adj + Ctl {
        // Implement your solution here...
     
    }
}