https://codeforces.com/contest/1001/problem/H
N桁の量子状態\ket{x}とqubityが与えられる。\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);
}
}
}
}