

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 OpenQASM 3.0 测量特定的量子比特
<a name="braket-openqasm-measure-qubits"></a>

Amazon Braket 提供的局部状态向量模拟器和局部密度矩阵模拟器支持提交可以选择性测量电路量子比特子集的 OpenQASM 程序。这种能力通常被称为部分测量，可以更有针对性、更高效地进行量子计算。例如，在以下代码片段中，您可以创建一个双量子比特电路，并选择仅测量第一个量子比特，而不测量第二个量子比特。

```
partial_measure_qasm = """
OPENQASM 3.0;
bit[1] b;
qubit[2] q;
h q[0];
cnot q[0], q[1];
b[0] = measure q[0];
"""
```

在该例中，我们有一个包含两个量子比特的量子电路，`q[0]` 和 `q[1]`，但是我们只对测量第一个量子比特的状态感兴趣。这是通过直线 `b[0] = measure q[0]` 来实现的，它测量的是 quit[0] 的状态并将结果存储在经典位 b[0] 中。要运行此部分测量场景，我们可以在 Amazon Braket 提供的本地状态向量模拟器上运行以下代码。

```
from braket.devices import LocalSimulator

local_sim = LocalSimulator()
partial_measure_local_sim_task = local_sim.run(OpenQASMProgram(source=partial_measure_qasm), shots = 10)
partial_measure_local_sim_result = partial_measure_local_sim_task.result()
print(partial_measure_local_sim_result.measurement_counts)
print("Measured qubits: ", partial_measure_local_sim_result.measured_qubits)
```

您可以通过检查设备动作属性中的 `requiresAllQubitsMeasurement` 字段来检查设备是否支持部分测量；如果是 `False`，则支持部分测量。

```
from braket.devices import Devices
            
AwsDevice(Devices.Rigetti.Ankaa3).properties.action['braket.ir.openqasm.program'].requiresAllQubitsMeasurement
```

这里，`requiresAllQubitsMeasurement` 是 `False`，这表明并非所有量子比特都必须进行测量。