https://codeforces.com/contest/1001/problem/H
$N$桁の量子状態$\ket{x}$とqubit$y$が与えられる。$\ket{y}$をオラクルqubitとして$f(x)=\sum_i x_i\;mod\;2$で定義されるオラクルを作成せよ。
$N$桁のqubitで表される量子状態$\ket{x}$が奇数個の$\ket{1}$を含むとき$f(x)=1$、そうでないとき$f(x)=0$となる関数$f(x)$で定義されるオラクルを実装せよという問題です。
これを実現するには、$\ket{x}$の各qubitを制御bitに、$\ket{y}$をターゲットbitにして順番に$N$個のC-NOTゲートを作用させればよいです。
namespace Solution {
open Microsoft.Quantum.Primitive;
open Microsoft.Quantum.Canon;
operation Solve (x : Qubit[], y : Qubit) : ()
{
body
{
for(i in 0..Length(x)-1){
CNOT(x[i],y);
}
}
}
}