B1: Polynomial Oracle

実行時間制限:3

メモリ制限:512 MiB

配点:300

問題文

整数 x  (0x<8)x \; (0 \leq x < 8) に対し、f(x)=x2+x+1(mod8)f(x) = x^2 + x + 1 \pmod{8} と定義する。

次の条件を満たすオラクル OO を、66 量子ビットをもつ量子回路 qc\mathrm{qc} 上に実装せよ。

0x<80 \leq x < 80y<80 \leq y < 8 を満たす任意の整数の組 (x,y)(x,y) に対して

xyOxyf(x)\ket{x}\ket{y} \xrightarrow{O} \ket{x}\ket{y \oplus f(x)}

ただし、\oplus はビットごとの排他的論理和を表す。

制約

from qiskit import QuantumCircuit, QuantumRegister
 
 
def solve() -> QuantumCircuit:
    x = QuantumRegister(3)
    y = QuantumRegister(3)
    qc = QuantumCircuit(x, y)
 
    # Write your code here:
 
    return qc

ヒント

開く
  • 例えば x=3x = 3 のとき、f(3)=32+3+1=135(mod8)f(3) = 3^2 + 3 + 1 = 13 \equiv 5 \pmod{8} となります。

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