mindquantum.algorithm.library.amplitude_encoder

查看源文件
mindquantum.algorithm.library.amplitude_encoder(x, n_qubits)[源代码]

用于振幅编码的量子线路。

说明

经典数据的长度应该是2的幂,否则将用0填充。 向量应该归一化。

参数:
  • x (list[float] or numpy.array(list[float])) - 需要编码的数据向量,应该归一化。

  • n_qubits (int) - 编码线路的量子比特数。

返回:

Circuit,能够完成振幅编码的量子线路。 ParameterResolver,用于完成振幅编码量子线路的参数。

样例:

>>> from mindquantum.algorithm.library import amplitude_encoder
>>> from mindquantum.simulator import Simulator
>>> sim = Simulator('mqvector', 2)
>>> encoder, parameterResolver = amplitude_encoder([0.5, -0.5, -0.5j, -0.5j], 2)
>>> sim.apply_circuit(encoder, parameterResolver)
>>> print(sim.get_qs(True))
1/2¦00⟩
-1/2¦01⟩
-1/2j¦10⟩
-1/2j¦11⟩
>>> sim.reset()
>>> encoder, parameterResolver = amplitude_encoder([0, -0.5j, -0.5j, -0.5, 0.5], 3)
>>> sim = Simulator('mqvector', 3)
>>> sim.apply_circuit(encoder, parameterResolver)
>>> print(sim.get_qs(True))
-1/2j¦001⟩
-1/2j¦010⟩
-1/2¦011⟩
1/2¦100⟩