D1. Oracle for f(x) = b * x mod 2

Codeforces
IDCF1002D1
Time1000ms
Memory256MB
Difficulty
English · Original
Chinese · Translation
Formal · Original
Implement a quantum oracle on _N_ qubits which implements the following function: , where (a vector of _N_ integers, each of which can be 0 or 1). For an explanation on how this type of quantum oracles works, see [Introduction to quantum oracles](https://codeforces.com/blog/entry/60319). You have to implement an operation which takes the following inputs: * an array of _N_ qubits _x_ in arbitrary state (input register), 1 ≤ _N_ ≤ 8, * a qubit _y_ in arbitrary state (output qubit), * an array of _N_ integers _b_, representing the vector . Each element of _b_ will be 0 or 1. The operation doesn't have an output; its "output" is the state in which it leaves the qubits. Your code should have the following signature: namespace Solution { open Microsoft.Quantum.Primitive; open Microsoft.Quantum.Canon; operation Solve (x : Qubit\[\], y : Qubit, b : Int\[\]) : () { body { // your code here } } } [samples]
实现一个作用于 #cf_span[N] 个量子比特上的量子预言机,实现以下函数:,其中 (一个包含 #cf_span[N] 个整数的向量,每个整数为 0 或 1)。 有关此类量子预言机的工作原理,请参阅 量子预言机简介。 你需要实现一个操作,它接受以下输入: 该操作没有输出;其“输出”是它对量子比特所留下的状态。 你的代码应具有以下签名: [samples]
**Definitions** Let $ N \in \mathbb{Z}^+ $ be the number of qubits. Let $ \mathcal{H} = (\mathbb{C}^2)^{\otimes N} $ be the Hilbert space of $ N $ qubits. Let $ \mathbf{x} = (x_1, x_2, \dots, x_N) \in \{0,1\}^N $ be a computational basis state. Let $ f: \{0,1\}^N \to \{0,1\} $ be a Boolean function defined by $ f(\mathbf{x}) = \bigoplus_{i=1}^N x_i $ (parity of $ \mathbf{x} $). **Constraints** The oracle operates on $ N $ qubits in the computational basis. The oracle must implement the unitary transformation: $$ U_f: |\mathbf{x}\rangle \mapsto (-1)^{f(\mathbf{x})} |\mathbf{x}\rangle $$ **Objective** Implement the unitary operator $ U_f $ such that for all $ \mathbf{x} \in \{0,1\}^N $: $$ U_f |\mathbf{x}\rangle = (-1)^{\bigoplus_{i=1}^N x_i} |\mathbf{x}\rangle $$
API Response (JSON)
{
  "problem": {
    "name": "D1. Oracle for f(x) = b * x mod 2",
    "description": {
      "content": "Implement a quantum oracle on _N_ qubits which implements the following function: , where (a vector of _N_ integers, each of which can be 0 or 1). For an explanation on how this type of quantum oracl",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF1002D1"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Implement a quantum oracle on _N_ qubits which implements the following function: , where (a vector of _N_ integers, each of which can be 0 or 1).\n\nFor an explanation on how this type of quantum oracl...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "实现一个作用于 #cf_span[N] 个量子比特上的量子预言机,实现以下函数:,其中  (一个包含 #cf_span[N] 个整数的向量,每个整数为 0 或 1)。\n\n有关此类量子预言机的工作原理,请参阅 量子预言机简介。\n\n你需要实现一个操作,它接受以下输入:\n\n该操作没有输出;其“输出”是它对量子比特所留下的状态。\n\n你的代码应具有以下签名:\n\n[samples]...",
      "is_translate": true,
      "language": "Chinese"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ N \\in \\mathbb{Z}^+ $ be the number of qubits.  \nLet $ \\mathcal{H} = (\\mathbb{C}^2)^{\\otimes N} $ be the Hilbert space of $ N $ qubits.  \nLet $ \\mathbf{x} = (x_1, x_2, \\dots, x_...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments