Skip to content

测量 — measure, MeasureNode, QResult, StabilizerResult

pyqpanda3 中量子测量操作的 API 参考。

measure

创建将量子比特映射到经典比特的测量操作。

签名

python
measure(qubit: int, cbit: int) -> MeasureNode
measure(qubits: list[int], cbits: list[int]) -> list[MeasureNode]
参数类型说明
qubitint要测量的量子比特索引
cbitint存储结果的经典比特索引
qubitslist[int]要测量的多个量子比特索引
cbitslist[int]存储结果的多个经典比特索引

返回

MeasureNodelist[MeasureNode] — 要追加到 QProg 的测量节点。

示例

python
from pyqpanda3.core import H, CNOT, CPUQVM, QProg, measure

qvm = CPUQVM()
prog = QProg()

# 单量子比特测量
prog << H(0) << measure(0, 0)

# 多量子比特测量
prog << CNOT(0, 1) << measure([0, 1], [0, 1])

qvm.run(prog, 1000)
result = qvm.result()
print(result.get_counts())

MeasureNode

表示将量子比特绑定到经典比特的测量操作。

签名

python
class MeasureNode

MeasureNode 对象由 measure() 函数创建,并通过 << 运算符追加到 QProg 实例。

python
from pyqpanda3.core import measure

m = measure(0, 0)
prog << m

QResult

存储量子模拟的结果,包括测量计数、态矢量和概率分布。

签名

python
class QResult:
    def __init__() -> None

方法

QResult.get_state_vector

python
get_state_vector() -> list[complex]

返回模拟后的量子系统态矢量。

QResult.get_counts

python
get_counts() -> dict[str, int]

返回将测量结果比特串映射到其计数的字典。

python
# 示例输出: {'00': 487, '11': 513}
result.get_counts()

QResult.get_prob_list

python
get_prob_list(qubits: list[int] = []) -> list[float]
参数类型说明
qubitslist[int]量子比特索引(默认所有量子比特)

返回指定量子比特的概率列表。

QResult.get_prob_dict

python
get_prob_dict(qubits: list[int] = []) -> dict[str, float]
参数类型说明
qubitslist[int]量子比特索引(默认所有量子比特)

返回将比特串映射到概率的概率字典。

QResult.shots

python
shots() -> int

返回测量 shot 数。

QResult.print_results

python
print_results() -> None

将测量结果打印到标准输出。

StabilizerResult

Stabilizer 模拟器的结果类。继承自 QResult

签名

python
class StabilizerResult(QResult):
    def __init__() -> None

方法

StabilizerResult.get_state_vector

python
get_state_vector() -> list[complex]

返回稳定器态的态矢量。

示例

python
from pyqpanda3.core import H, CNOT, Stabilizer, QProg, measure, NoiseModel

qvm = Stabilizer()
prog = QProg()
prog << H(0) << CNOT(0, 1)
prog << measure(0, 0) << measure(1, 1)

qvm.run(prog, 1000, NoiseModel())
result = qvm.result()  # StabilizerResult
print(result.get_counts())

另见

  • 模拟器 — CPUQVM、Stabilizer 和其他模拟器
  • 线路 — QProg 用于构建量子程序
  • 噪声 — NoiseModel 用于含噪声模拟

Released under the MIT License.