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⟩