- 本源量子计算平台使用
bash
from numpy import pi
from pyqpanda import *
from pyqpanda.Visualization import circuit_draw
machine = CPUQVM()
machine.init_qvm()
qlist = machine.qAlloc_many(4)
clist = machine.cAlloc_many(4)
measure_prog = QProg()
measure_prog << hadamard_circuit(qlist) \
<< CZ(qlist[1], qlist[2]) \
<< RX(qlist[2], pi / 4) \
<< RX(qlist[1], pi / 4) \
<< CNOT(qlist[0], qlist[2]) \
<< Measure(qlist[0], clist[0])
print(measure_prog)
创建量子线路及其可视化
bash
┌─┐ ┌─┐
q_0: |0>─┤H├ ──── ────────────── ───■── ─┤M├
├─┤ ┌────────────┐ │ └╥┘
q_1: |0>─┤H├ ──■─ ┤RX(0.785398)├ ───┼── ──╫─
├─┤ ┌─┴┐ ├────────────┤ ┌──┴─┐ ║
q_2: |0>─┤H├ ┤CZ├ ┤RX(0.785398)├ ┤CNOT├ ──╫─
├─┤ └──┘ └────────────┘ └────┘ ║
q_3: |0>─┤H├ ──── ────────────── ────── ──╫─
└─┘ ║
c : / ══════════════════════════════════╩═
0
打印量子态的分布代码
bash
from pyqpanda import *
import numpy as np
machine = CPUQVM()
machine.set_configure(50, 50)
machine.init_qvm()
q = machine.qAlloc_many(4)
c = machine.cAlloc_many(4)
prog = QProg()
prog.insert(X(q[1]))\
.insert(T(q[0]))\
.insert(RX(q[1], np.pi/2))\
.insert(RZ(q[0], np.pi/4))
machine.directly_run(prog)
result = machine.get_qstate()
plot_state_city(result)
machine.finalize()
概率分布代码
bash
from pyqpanda import *
machine = CPUQVM()
machine.init_qvm()
qubits = machine.qAlloc_many(3)
prog = QProg()
prog << Z(qubits[0])\
<< X1(qubits[1])\
<< H(qubits[:2])
machine.directly_run(prog)
result_dict = machine.prob_run_dict(prog, qubits, -1)
draw_probability_dict(result_dict)
machine.finalize()