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

Определить частоту квантового сигнала

Вход — $n$ кубитов в состоянии

$$\frac1{\sqrt{2^n}}\sum_{k=0}^{2^n-1}e^{2\pi iFk/2^n}|k\rangle.$$

Напишите операцию на языке Q#, возвращающую частоту $F$, $0\le F\le2^n-1$.

Например, при $n=2$ для $(|0\rangle+i|1\rangle-|2\rangle-i|3\rangle)/2$ ответ равен 1.

Конечное состояние кубитов неважно. Полная вспомогательная операция QFT, реализующая преобразование Фурье через библиотеку, дана в заготовке.

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

namespace Kata {
    import Std.Arrays.*;

    operation SignalFrequency(qs : Qubit[]) : Int {
        // Implement your solution here...

        return -1;
    }

    // You might find this helper operation that implements QFT using a library operation useful.
    operation QFT(qs : Qubit[]) : Unit is Adj + Ctl {
        ApplyQFT(Reversed(qs));
        SwapReverseRegister(qs);
    }
}

Предложить решение

Войти, чтобы отправить материал.