B2: Left Action in Another Fourier Basis

実行時間制限:3 秒

メモリ制限:512 MiB

配点:500点

問題文

nn を正の整数とする。非負整数 m,km, k に対し、E(m,k)E(m, k) を次式で定義する。

E(m,k)=12n+10a<20b<2(1)am+bkab0n1+12n1c<2n1(XmRckI1In1)(00+11)cn1\begin{align} E(m, k) = & \frac{1}{\sqrt{2^{n+1}}} \sum_{0 \leq a < 2} \sum_{0 \leq b < 2} (-1)^{am + bk} \ket{a} \ket{b} \ket{0}_{n-1} \nonumber \\ & + \frac{1}{\sqrt{2^n}} \sum_{1 \leq c < 2^{n-1}} \left( X^m R^{ck} \otimes I_1 \otimes I_{n-1} \right) \left( \ket{0}\ket{0} + \ket{1}\ket{1} \right) \ket{c}_{n-1} \nonumber \end{align}

ここで、行列 XXXX ゲートRR回転ゲート Rz(2π/2n1)Rz\left( 2 \pi / 2^{n - 1} \right) を表す。

X=(0110),R=Rz(2π2n1)=(exp(2πi2n)00exp(2πi2n))X = \begin{pmatrix} 0 & 1 \\ 1 & 0 \end{pmatrix}, \quad R = Rz\left( \frac{2 \pi}{2^{n - 1}} \right) = \begin{pmatrix} \exp \left( - \frac{2\pi i}{2^n} \right) & 0 \\ 0 & \exp \left( \frac{2\pi i}{2^n} \right) \end{pmatrix}

整数 nn, mleftm_{\text{left}}, kleftk_{\text{left}} が入力として与えられるので、次の条件を満たすオラクル OO を、n+1n+1 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

0m<20 \leq m < 20k<2n0 \leq k < 2^{n} を満たす任意の整数の組 (m,k)(m,k) に対して

E(m,k)OE(m,k)E(m, k) \xrightarrow{O} E(m', k')

ただし、0m<20 \leq m' < 20k<2n0 \leq k' < 2^{n} は以下の式を満たす必要がある。

XmRk=XmleftRkleftXmRkX^{m'} R^{k'} = X^{m_\text{left}} R^{k_\text{left}} X^{m} R^{k}

この問題はヒントの参照を推奨します。

制約

  • 2n102 \leq n \leq 10
  • 0mleft<20 \leq m_{\text{left}} < 2
  • 0kleft<2n0 \leq k_{\text{left}} < 2^n
  • 量子回路の 深さ3030 を超えてはならない。
  • 整数は リトルエンディアン にしたがってエンコードすること
  • グローバル位相 は問わない。
  • 提出されるコードは次のフォーマットにしたがうこと
from qiskit import QuantumCircuit
 
 
def solve(n: int, m_left: int, k_left: int) -> QuantumCircuit:
    qc = QuantumCircuit(n + 1)
    # Write your code here:
 
    return qc

ヒント

開く
  • mm'kk' が必ず存在することは以下により分かります。
    まず、XXRR について次が成り立ちます。 X2=R2n=I,RX=XR1X^2 = R^{2^n} = I, \quad RX = XR^{-1} このことから XmRk=XmleftRkleftXmRk=Xmleft(RkleftXm)Rk=Xmleft(XmR(1)mkleft)Rk=Xmleft+mR(1)mkleft+k\begin{align} X^{m'} R^{k'} & = X^{m_\text{left}} R^{k_\text{left}} X^{m} R^{k} \nonumber \\ & = X^{m_\text{left}} \left( R^{k_\text{left}} X^{m} \right) R^{k} \nonumber \\ & = X^{m_\text{left}} \left( X^{m} R^{(-1)^m k_{\text{left}}} \right) R^{k} \nonumber \\ & = X^{m_\text{left} + m} R^{(-1)^m k_{\text{left}} + k} \nonumber \end{align} となるので、 m=mleft+m (mod 2)k=(1)mkleft+k (mod 2n)\begin{gather} m' = m_{\text{left}} + m \ \left(\text{mod} \ 2 \right) \nonumber \\ k' = (-1)^{m} k_{\text{left}} + k \ \left(\text{mod} \ 2^{n} \right) \nonumber \end{gather} となります。

解答を提出するにはログインしてください。