[ SKILL_DOCUMENTATION ]
# PennyLane 中的量子电路
## 目录
1. [基础门与操作](#basic-gates-and-operations)
2. [多量子比特门](#multi-qubit-gates)
3. [受控操作](#controlled-operations)
4. [测量](#measurements)
5. [电路构建模式](#circuit-construction-patterns)
6. [动态电路](#dynamic-circuits)
7. [电路检查](#circuit-inspection)
## 基础门与操作
### 单量子比特门
python
import pennylane as qml
# Pauli 门
qml.PauliX(wires=0) # X 门 (位翻转)
qml.PauliY(wires=0) # Y 门
qml.PauliZ(wires=0) # Z 门 (相位翻转)
# Hadamard 门 (叠加态)
qml.Hadamard(wires=0)
# 相位门
qml.S(wires=0) # S 门 (π/2 相位)
qml.T(wires=0) # T 门 (π/4 相位)
qml.PhaseShift(phi, wires=0) # 任意相位
# 旋转门 (参数化)
qml.RX(theta, wires=0) # 绕 X 轴旋转
qml.RY(theta, wires=0) # 绕 Y 轴旋转
qml.RZ(theta, wires=0) # 绕 Z 轴旋转
# 通用单量子比特旋转
qml.Rot(phi, theta, omega, wires=0)
# 通用门 (任意单量子比特幺正变换)
qml.U3(theta, phi, delta, wires=0)
### 基态准备
python
# 计算基态
qml.BasisState([1, 0, 1], wires=[0, 1, 2]) # |101⟩
# 幅度编码
amplitudes = [0.5, 0.5, 0.5, 0.5] # 必须归一化
qml.MottonenStatePreparation(amplitudes, wires=[0, 1])
## 多量子比特门
### 双量子比特门
python
# CNOT (受控非门)
qml.CNOT(wires=[0, 1]) # 控制位=0, 目标位=1
# CZ (受控 Z 门)
qml.CZ(wires=[0, 1])
# SWAP 门
qml.SWAP(wires=[0, 1])
# 受控旋转
qml.CRX(theta, wires=[0, 1])
qml.CRY(theta, wires=[0, 1])
qml.CRZ(theta, wires=[0, 1])
# Ising 耦合门
qml.IsingXX(phi, wires=[0, 1])
qml.IsingYY(phi, wires=[0, 1])
qml.IsingZZ(phi, wires=[0, 1])
### 多量子比特门
python
# Toffoli 门 (CCNOT)
qml.Toffoli(wires=[0, 1, 2]) # 控制位=0,1, 目标位=2
# 多控制 X 门
qml.MultiControlledX(control_wires=[0, 1, 2], wires=3)
# 多量子比特 Pauli 旋转
qml.MultiRZ(theta, wires=[0, 1, 2])
## 受控操作
### 通用受控操作
python
# 应用任意操作的受控版本
qml.ctrl(qml.RX(0.5, wires=1), control=0)
# 多控制量子比特
qml.ctrl(qml.RY(0.3, wires=2), control=[0, 1])
# 负控制 (当控制位为 |0⟩ 时激活)
qml.ctrl(qml.Hadamard(wires=2), control=0, control_values=[0])
### 条件操作
python
@qml.qnode