Равномерная суперпозиция чётных базисных номеров
Вход — $n$ кубитов в $|0\ldots0\rangle$. Напишите операцию на языке Q#, подготавливающую
$$\frac{|0\rangle+|2\rangle+\cdots+|2^n-2\rangle}{\sqrt{2^{n-1}}}.$$
Например, при $n=2$ требуется $(|0\rangle+|2\rangle)/\sqrt2$.
Подсказка источника: какую суперпозицию двух базисных состояний преобразование Фурье переводит в это состояние? Используйте решения предыдущих упражнений. Полная вспомогательная операция QFT, реализующая преобразование Фурье через библиотеку, дана в заготовке.
Заготовка Q#:
namespace Kata {
import Std.Arrays.*;
operation AllEvenVectors(qs : Qubit[]) : Unit is Adj + Ctl {
// Implement your solution here...
}
// 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);
}
}Сообщить об ошибке
Войти, чтобы отправить материал.