

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 OpenQASM 3.0 測量特定 qubit
<a name="braket-openqasm-measure-qubits"></a>

Amazon Braket 提供的本機狀態向量模擬器和本機密度矩陣模擬器支援提交OpenQASM程式，其中可選擇性地測量電路的 qubit 子集。此功能通常稱為部分測量，可讓量子運算更具目標性和效率。例如，在下列程式碼片段中，您可以建立兩個 qubit 電路，並選擇只測量第一個 qubit，同時不測量第二個 qubit。

```
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];
"""
```

在此範例中，我們有一個具有兩個 qubit `q[0]`和 的量子電路`q[1]`，但我們只想測量第一個 qubit 的狀態。這是由行 所達成`b[0] = measure q[0]`，該行會測量 qubit【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`，表示並非所有 qubit 都必須測量。