[ PROMPT_NODE_27206 ]
circuits
[ SKILL_DOCUMENTATION ]
# 量子电路构建
## 创建量子电路
使用 `QuantumCircuit` 类创建电路:
python
from qiskit import QuantumCircuit
# 创建一个包含 3 个量子比特的电路
qc = QuantumCircuit(3)
# 创建一个包含 3 个量子比特和 3 个经典比特的电路
qc = QuantumCircuit(3, 3)
## 单量子比特门
### 泡利门 (Pauli Gates)
python
qc.x(0) # 量子比特 0 上的 NOT/Pauli-X 门
qc.y(1) # 量子比特 1 上的 Pauli-Y 门
qc.z(2) # 量子比特 2 上的 Pauli-Z 门
### 阿达马门 (Hadamard Gate)
创建叠加态:
python
qc.h(0) # 量子比特 0 上的阿达马门
### 相位门 (Phase Gates)
python
qc.s(0) # S 门 (√Z)
qc.t(0) # T 门 (√S)
qc.p(π/4, 0) # 具有自定义角度的相位门
### 旋转门 (Rotation Gates)
python
from math import pi
qc.rx(pi/2, 0) # 绕 X 轴旋转
qc.ry(pi/4, 1) # 绕 Y 轴旋转
qc.rz(pi/3, 2) # 绕 Z 轴旋转
## 多量子比特门
### CNOT (受控非门)
python
qc.cx(0, 1) # 控制位=0,目标位=1 的 CNOT 门
### 受控门
python
qc.cy(0, 1) # 受控 Y 门
qc.cz(0, 1) # 受控 Z 门
qc.ch(0, 1) # 受控阿达马门
### SWAP 门
python
qc.swap(0, 1) # 交换量子比特 0 和 1
### Toffoli (CCX) 门
python
qc.ccx(0, 1, 2) # 控制位=0,1,目标位=2 的 Toffoli 门
## 测量
添加测量以读取量子比特状态:
python
# 测量所有量子比特
qc.measure_all()
# 将特定量子比特测量到特定经典比特
qc.measure(0, 0) # 将量子比特 0 测量到经典比特 0
qc.measure([0, 1], [0, 1]) # 将量子比特 0,1 测量到比特 0,1
## 电路组合
### 合并电路
python
qc1 = QuantumCircuit(2)
qc1.h(0)
qc2 = QuantumCircuit(2)
qc2.cx(0, 1)
# 组合电路
qc_combined = qc1.compose(qc2)
### 张量积
python
qc1 = QuantumCircuit(1)
qc1.h(0)
qc2 = QuantumCircuit(1)
qc2.x(0)
# 从较小的电路创建更大的电路
qc_tensor = qc1.tensor(qc2) # 结果为 2 量子比特电路
## 屏障与标签
python
qc.barrier() # 在电路中添加视觉屏障
qc.barrier([0, 1]) # 在特定量子比特上添加屏障
# 添加标签以提高清晰度
qc.barrier(label="Initialization")
## 电路属性
python
print(qc.num_qubits) # 量子比特数量
print(qc.num_clbits) # 经典比特数量
print(qc.depth()) # 电路深度
print(qc.size()) # 总门数
print(qc.count_ops()) # 门计数字典
## 示例:贝尔态
在两个量子比特之间创建纠缠:
python
qc = QuantumCircuit(2