Skip to content

PauliWithQbit ​

PauliWithQbit 表示与特定量子比特索引关联的单个泡利矩阵(I、X、Y 或 Z)。它是哈密顿量模块中最细粒度的构建块——每个 PauliTerm 由一组 PauliWithQbit 实例组成,每个量子比特一个。

方法 ​

qbit ​

python
PauliWithQbit.qbit() -> int

返回此泡利矩阵作用的量子比特索引。

返回: 整数量子比特索引。

is_I ​

python
PauliWithQbit.is_I() -> bool

如果此泡利是恒等矩阵 I 则返回 True。

返回: 布尔值。

is_X ​

python
PauliWithQbit.is_X() -> bool

如果此泡利是 X(比特翻转)矩阵则返回 True。

返回: 布尔值。

is_Y ​

python
PauliWithQbit.is_Y() -> bool

如果此泡利是 Y 矩阵则返回 True。

返回: 布尔值。

is_Z ​

python
PauliWithQbit.is_Z() -> bool

如果此泡利是 Z(相位翻转)矩阵则返回 True。

返回: 布尔值。

to_qgate ​

python
PauliWithQbit.to_qgate() -> QGate

将此泡利转换为相应的量子门对象。映射关系为:

泡利门
I恒等(无操作)
XX 门
YY 门
ZZ 门

返回: 作用于索引 qbit() 处量子比特的 QGate。

pauli_char ​

python
PauliWithQbit.pauli_char() -> str

返回标识泡利类型的单字符字符串:"I"、"X"、"Y" 或 "Z"。

返回: 单字符字符串。

示例 ​

检查项中的泡利 ​

python
from pyqpanda3.hamiltonian import PauliOperator

h = PauliOperator({"X0 Y1 Z2": 1.0})
term = h.terms()[0]

for pwq in term.paulis():
    print(f"Qubit {pwq.qbit()}: {pwq.pauli_char()}")
    print(f"  is_X: {pwq.is_X()}, is_Y: {pwq.is_Y()}, is_Z: {pwq.is_Z()}, is_I: {pwq.is_I()}")

运行结果:

Qubit 0: X
  is_X: True, is_Y: False, is_Z: False, is_I: False
Qubit 1: Y
  is_X: False, is_Y: True, is_Z: False, is_I: False
Qubit 2: Z
  is_X: False, is_Y: False, is_Z: True, is_I: False

将泡利转换为量子门 ​

python
from pyqpanda3.hamiltonian import PauliOperator

h = PauliOperator({"X0 Z1": 1.0})
term = h.terms()[0]

for pwq in term.paulis():
    if not pwq.is_I():
        gate = pwq.to_qgate()
        print(f"Gate on qubit {pwq.qbit()}: {gate}")

运行结果:

Gate on qubit 0: <pyqpanda3.core.core.QGate object at 0x...>
Gate on qubit 1: <pyqpanda3.core.core.QGate object at 0x...>

另见 ​

Released under the MIT License.