ลงมือทำกับ Qiskit: Hello World - Qiskit Patterns
ใน notebook นี้ คุณจะได้เดินผ่านขั้นตอนการทำงานแบบ Qiskit Patterns และใช้ Sampler primitive ของ Qiskit
บทแนะนำนี้มีเนื้อหาบางส่วนจาก IBM Quantum Documentation: Hello World
ลิงก์ที่มีประโยชน์:
- กรุณา สร้างบัญชี IBM Cloud เพื่อเข้าถึง IBM Quantum Platform
- สำหรับผู้ที่มีอีเมลมหาวิทยาลัย: รับ feature code ที่นี่เพื่อขยายระยะเวลาทดลองใช้ฟรี
- สำหรับผู้ที่ไม่มีอีเมลมหาวิทยาลัย: คำแนะนำในการเปิดใช้งานบัญชี เปิดใช้งานบัญชีแบบเต็มรูปแบบโดยลงทะเบียนบัตรเครดิต บัตรเครดิตของคุณจะไม่ถูกเรียกเก็บเงินในกระบวนการนี้หรือโดยพลการหลังจากลงทะเบียน การเปิดใช้งานนี้ช่วยให้คุณเข้าถึงทรัพยากรฟรีใน IBM Cloud และ IBM Quantum Platform ได้ต่อหลังจากช่วงทดลองสิ้นสุด (30 วัน)
- เราจะใช้แพลตฟอร์มบนคลาวด์เพื่อตั้งค่าสภาพแวดล้อมการเขียนโค้ด คุณอาจใช้ QBraid หรือ Google Colab ก็ได้
- หลังจาก notebook นี้ เราจะมาดู โปรโตคอล Quantum Teleportation
ลิงก์เพิ่มเติม - ชุมชน Qiskit และแหล่งเรียนรู้เพิ่มเติม:
- Grok sphere
- IBM Quantum Composer
- IBM Quantum Learning
- Qiskit Global Summer School 2025 lectures
- Qiskit v2.X Certification
- Qiskit advocate program
- Quantum summer internships
- Qiskit YouTube
ติดตั้ง Qiskit
คุณสามารถใช้สภาพแวดล้อม jupyter lab ออนไลน์ (ดูคู่มือ Online lab environments) หรือติดตั้ง Qiskit ในเครื่องก็ได้
ทำตามคู่มือการติดตั้ง Qiskit Install the Qiskit SDK and the Qiskit Runtime client เพื่อทำขั้นตอนต่อไปนี้:
-
ติดตั้ง Qiskit รวมถึงแพ็กเกจการแสดงผลพิเศษ:
pip install qiskit[visualization] -
ติดตั้ง qiskit-ibm-runtime:
pip install qiskit-ibm-runtime -
ติดตั้ง jupyter:
pip install jupyterตรวจสอบว่าเวอร์ชัน Python ที่ใช้ในสภาพแวดล้อมของคุณคือ python>=3.10 เพื่อให้แน่ใจว่าเข้ากันได้กับ Qiskit เวอร์ชันล่าสุด:
# Added by doQumentation — required packages for this notebook
!pip install -q IPython
from platform import python_version
print(python_version())
3.13.7
ถ้าจำเป็นต้องอัปเกรด Python และไม่แน่ใจว่าทำอย่างไร ให้ดูคู่มือนี้เกี่ยวกับวิธีอัปเกรด Python ตาม OS ของคุณ: How to update Python
%pip install qiskit[visualization]
%pip install qiskit-ibm-runtime
%pip install
%pip install qiskit-aer
zsh:1: no matches found: qiskit[visualization]
Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: qiskit-ibm-runtime in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (0.43.0)
Requirement already satisfied: requests>=2.19 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (2.32.5)
Requirement already satisfied: requests-ntlm>=1.1.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (1.3.0)
Requirement already satisfied: numpy>=1.13 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (2.3.3)
Requirement already satisfied: urllib3>=1.21.1 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (2.5.0)
Requirement already satisfied: python-dateutil>=2.8.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (2.9.0.post0)
Requirement already satisfied: ibm-platform-services>=0.22.6 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (0.69.0)
Requirement already satisfied: pydantic>=2.5.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (2.12.2)
Requirement already satisfied: qiskit>=1.4.1 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (2.2.1)
Requirement already satisfied: packaging in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-ibm-runtime) (25.0)
Requirement already satisfied: ibm_cloud_sdk_core<4.0.0,>=3.24.2 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from ibm-platform-services>=0.22.6->qiskit-ibm-runtime) (3.24.2)
Requirement already satisfied: PyJWT<3.0.0,>=2.10.1 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from ibm_cloud_sdk_core<4.0.0,>=3.24.2->ibm-platform-services>=0.22.6->qiskit-ibm-runtime) (2.10.1)
Requirement already satisfied: six>=1.5 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from python-dateutil>=2.8.0->qiskit-ibm-runtime) (1.17.0)
Requirement already satisfied: charset_normalizer<4,>=2 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from requests>=2.19->qiskit-ibm-runtime) (3.4.4)
Requirement already satisfied: idna<4,>=2.5 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from requests>=2.19->qiskit-ibm-runtime) (3.11)
Requirement already satisfied: certifi>=2017.4.17 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from requests>=2.19->qiskit-ibm-runtime) (2025.10.5)
Requirement already satisfied: annotated-types>=0.6.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from pydantic>=2.5.0->qiskit-ibm-runtime) (0.7.0)
Requirement already satisfied: pydantic-core==2.41.4 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from pydantic>=2.5.0->qiskit-ibm-runtime) (2.41.4)
Requirement already satisfied: typing-extensions>=4.14.1 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from pydantic>=2.5.0->qiskit-ibm-runtime) (4.15.0)
Requirement already satisfied: typing-inspection>=0.4.2 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from pydantic>=2.5.0->qiskit-ibm-runtime) (0.4.2)
Requirement already satisfied: rustworkx>=0.15.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit>=1.4.1->qiskit-ibm-runtime) (0.17.1)
Requirement already satisfied: scipy>=1.5 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit>=1.4.1->qiskit-ibm-runtime) (1.16.2)
Requirement already satisfied: dill>=0.3 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit>=1.4.1->qiskit-ibm-runtime) (0.4.0)
Requirement already satisfied: stevedore>=3.0.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit>=1.4.1->qiskit-ibm-runtime) (5.5.0)
Requirement already satisfied: cryptography>=1.3 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from requests-ntlm>=1.1.0->qiskit-ibm-runtime) (46.0.2)
Requirement already satisfied: pyspnego>=0.4.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from requests-ntlm>=1.1.0->qiskit-ibm-runtime) (0.12.0)
Requirement already satisfied: cffi>=2.0.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from cryptography>=1.3->requests-ntlm>=1.1.0->qiskit-ibm-runtime) (2.0.0)
Requirement already satisfied: pycparser in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from cffi>=2.0.0->cryptography>=1.3->requests-ntlm>=1.1.0->qiskit-ibm-runtime) (2.23)
Note: you may need to restart the kernel to use updated packages.
[31mERROR: You must give at least one requirement to install (see "pip help install")[0m[31m
[0mNote: you may need to restart the kernel to use updated packages.
Requirement already satisfied: qiskit-aer in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (0.17.2)
Requirement already satisfied: qiskit>=1.1.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-aer) (2.2.1)
Requirement already satisfied: numpy>=1.16.3 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-aer) (2.3.3)
Requirement already satisfied: scipy>=1.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-aer) (1.16.2)
Requirement already satisfied: psutil>=5 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-aer) (7.1.0)
Requirement already satisfied: python-dateutil>=2.8.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit-aer) (2.9.0.post0)
Requirement already satisfied: six>=1.5 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from python-dateutil>=2.8.0->qiskit-aer) (1.17.0)
Requirement already satisfied: rustworkx>=0.15.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit>=1.1.0->qiskit-aer) (0.17.1)
Requirement already satisfied: dill>=0.3 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit>=1.1.0->qiskit-aer) (0.4.0)
Requirement already satisfied: stevedore>=3.0.0 in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit>=1.1.0->qiskit-aer) (5.5.0)
Requirement already satisfied: typing-extensions in /Users/astricornish/miniforge3/envs/um-qiskit/lib/python3.13/site-packages (from qiskit>=1.1.0->qiskit-aer) (4.15.0)
Note: you may need to restart the kernel to use updated packages.
นำเข้า library ที่จำเป็น
มาเตรียม import ที่จำเป็นสำหรับบทแนะนำนี้กัน
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
import qiskit_ibm_runtime
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import SamplerV2 as Sampler
from qiskit.quantum_info import SparsePauliOp
from qiskit.quantum_info import Statevector
from qiskit.visualization import plot_bloch_multivector, plot_state_qsphere
from IPython.display import display, Latex
ตั้งค่าบัญชี IBM Quantum Platform
เพื่อรันวงจรควอนตัมบนฮาร์ดแวร์จริง คุณจะต้องมีบัญชี IBM Cloud
ทำตามคำแนะนำในคู่มือนี้ Set up your IBM Cloud account เพื่อทำขั้นตอนต่อไปนี้:
- ตั้งค่าบัญชี IBM Cloud หากยังไม่มี
- เข้าสู่ระบบหรือสร้างบัญชี IBM Quantum Platform ด้วย IBMid
- เข้าไปที่ IBM Quantum Platform dashboard, สร้าง API token และคัดลอกไว้ในที่ปลอดภัย (ดูภาพอ้างอิงแรกด้านล่าง)
- ในเซลล์โค้ดถัดจากภาพอ้างอิง ให้แทนที่
deleteThisAndPasteYourAPIKeyHereด้วย API key ของคุณ - ไปที่หน้า Instances จากเมนู ☰ หลัก แล้ว สร้าง instance ของคุณ ถ้าไม่ได้อยู่ในสถาบัน Network ให้เลือก open plan (ดูภาพอ้างอิงที่สองด้านล่าง)
- หลังสร้าง instance แล้ว ให้คัดลอก CRN code ที่เกี่ยวข้อง (CRN ย่อมาจาก Cloud Resource Names) อาจต้องรีเฟรชหน้าจอก่อนถึงจะเห็น instance
- ในเซลล์โค้ดถัดจากภาพอ้างอิง ให้แทนที่
deleteThisAndPasteYourCRNHereด้วย CRN code ของคุณ
หมายเหตุ: ปฏิบัติต่อ API key ของคุณเหมือนรหัสผ่านที่ปลอดภัย ดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้ API key ในสภาพแวดล้อมที่ปลอดภัยและไม่ปลอดภัยได้ที่คู่มือ Set up your IBM Cloud account
#@title personals
your_api_key = "YOUR_API_KEY"
your_crn = "YOUR_CRN"
from qiskit_ibm_runtime import QiskitRuntimeService
# Save your API key to access real devices
your_api_key = your_api_key
your_crn = your_crn
QiskitRuntimeService.save_account(
channel="ibm_cloud",
token=your_api_key,
instance=your_crn,
set_as_default=True,
overwrite=True,
)
สร้างและรันอัลกอริทึมควอนตัมอย่างง่ายด้วย Qiskit pattern framework
กรอบแนวคิด Qiskit pattern สามารถเปรียบได้กับโครงสร้างพื้นฐานของอัลกอริทึมควอนตัม
สี่ขั้นตอนในการเขียนโปรแกรมควอนตัมด้วย Qiskit patterns มีดังนี้
-
แปลงปัญหาให้อยู่ในรูปแบบที่เหมาะกับควอนตัม
-
ปรับ Circuit และ operator ให้เหมาะสมที่สุด
-
รันด้วยฟังก์ชัน Qiskit primitive
-
วิเคราะห์ผลลัพธ์
Step 1. แปลงปัญหาให้อยู่ในรูปแบบที่เหมาะกับควอนตัม
ในโปรแกรมควอนตัม quantum circuits คือรูปแบบดั้งเดิมที่ใช้แทนคำสั่งควอนตัม และ operators แทนค่าสังเกตที่ต้องการวัด เมื่อสร้าง Circuit มักจะสร้างออบเจกต์ QuantumCircuit ใหม่ แล้วค่อยๆ เพิ่มคำสั่งเข้าไปตามลำดับ
การสาธิต: สร้าง quantum circuit เบื้องต้นใน Qiskit
มาลองสร้าง Circuit อย่างง่ายด้วย Qiskit กัน
# Simple quantum circuit with two qubits and two classical bits
# Create quantum circuit with 2 qubits and 2 classical bits
qc = QuantumCircuit(2)
# Add gates to your circuit
qc.x(0)
qc.s(1)
# Draw the output using MatPlotLib
qc.draw(output='mpl')
# Quantum circuit with a Quantum Register named 'qr' that has two qubits, and a Classical Register named 'cr' with two classical bits
# Create a quantum register with 2 qubits, register label is 'qr'
qreg = QuantumRegister(2)
# Create a classical register with 2 qubits, register label is 'cr'
creg = ClassicalRegister(2)
# Create a quantum circuit with registers qreg and creg
qc = QuantumCircuit(qreg, creg)
# Add gates to your registers
qc.x(qreg[0])
# Draw the quantum circuit
qc.draw(output='mpl')
แบบฝึกหัด: สร้าง quantum circuit เบื้องต้นใน Qiskit
สร้าง Circuit สำหรับ Bell state
# Create a new circuit with two qubits
qc = QuantumCircuit(2)
# Add a Hadamard gate to qubit 0
qc.h(0)
# Perform a controlled-X gate on qubit 1, controlled by qubit 0
qc.cx(0,1)
# Return a drawing of the circuit using MatPlotLib ("mpl").
qc.draw('mpl')
สถานะเริ่มต้นของ quantum circuit คือสถานะ
สถานะสุดท้ายคือ:
# Use Statevector to fetch the statevector of the circuit
sv = Statevector(qc)
sv.draw(output='latex')
หมายเหตุเกี่ยวกับการนับบิตใน Qiskit
Qiskit นับบิตในสตริงจากขวาไปซ้าย Qiskit SDK ใช้การนับบิตแบบ LSb 0 เมื่อแสดงหรืออ่านรายการบิต (หรือ qubit) ตัวเป็นสตริง บิตที่ จะอยู่ซ้ายสุด และบิตที่ จะอยู่ขวาสุด เพราะปกติเราเขียนตัวเลขโดยให้หลักที่มีนัยสำคัญมากที่สุดอยู ่ด้านซ้าย และใน Qiskit บิตที่ จะถูกตีความว่าเป็น most significant bit ดูรายละเอียดเพิ่มเติมได้ที่หัวข้อ Bit-ordering in the Qiskit SDK
#LSB ordering example
qc2 = QuantumCircuit(2)
qc2.x(1)
qc2.draw("mpl")
sv2 = Statevector(qc2)
sv2.draw(output='latex')
จำเป็นต้องมี measurement gates ไหม?
เมื่อสร้าง quantum circuit ต้องคิดด้วยว่าอยากได้ข้อมูลประเภทไหนกลับมาหลังรัน Qiskit มีสองวิธีในการคืนข้อมูล คือหาค่าคาดหวัง (expectation value) ของ observable หรือหาการกระจายความน่าจะเป็น (probability distribution) ของ qubit ที่เลือกวัด เตรียม workload ให้วัด Circuit ด้วยหนึ่งในสองวิธีนี้ผ่าน Qiskit primitives
Samplerprimitive - คืนค่าการกระจายความน่าจะเป็นของ qubit ที่เลือกวัด เช่น:
Estimatorprimitive - คืนค่าคาดหวังของ observable เช่น:
วันนี้เราจะใช้ Sampler ดังนั้นต้องเพิ่ม measurement gates เข้าไปใน Circuit
# Use measure_all, which adds a barrier, applies measurement gates on all qubits, creates a classical register called `meas`
qc.measure_all()
qc.draw('mpl')
Step 2. ปรับ Circuit ให้เหมาะกับฮาร์ดแวร์เป้าหมาย
เมื่อรัน Circuit บนอุปกรณ์จริง สิ่งสำคัญคือต้องปรับชุดคำสั่งที่ Circuit ใช้ให้เหมาะสมและลด depth (จำนวนคำสั่งโดยรวม) ของ Circuit ให้น้อยที่สุด ซึ่งช่วยให้ได้ผลลัพธ์ที่ดีที่สุดโดยลดผลกระทบจากข้อผิดพลาดและสัญญาณรบกวน นอกจากนี้คำสั่งใน Circuit ยังต้องสอดคล้องกับ Instruction Set Architecture (ISA) ของ backend อุปกรณ์ และต้องคำนึงถึง basis gates และการเชื่อมต่อของ qubit ด้วย
โค้ดด้านล่างสร้าง simulator เพื่อส่ง job และแปลง Circuit กับ observable ให้ตรงกับ ISA ของ backend นั้น สังเกตว่าเราจะใช้อุปกรณ์จริงในภา ยหลัง
# option:
from qiskit_ibm_runtime.fake_provider import FakeTorino
backend = FakeTorino()
print(
f"Name: {backend.name}\n"
f"Version: {backend.version}\n"
f"Native gate set: {backend.operation_names}\n"
)
#to view other properties you can use properties()
# refer to https://docs.quantum.ibm.com/guides/get-qpu-information
Name: fake_torino
Version: 2
Native gate set: ['for_loop', 'delay', 'cz', 'id', 'sx', 'measure', 'reset', 'switch_case', 'if_else', 'rz', 'x']
# Convert to an ISA circuit
pm = generate_preset_pass_manager(backend=backend, optimization_level=3)
isa_circuit_sampler = pm.run(qc)
isa_circuit_sampler.draw("mpl", idle_wires=False)

Step 3. รันด้วย Qiskit primitives
คอมพิวเตอร์ควอนตัมสามารถให้ผลลัพธ์แบบสุ่ม ดังนั้นปกติจะเก็บตัวอย่างผลลัพธ์โดยรัน Circuit หลายครั้ง ประมาณค่าของ observable ได้ด้วยคลาส Estimator และ Sampler ใช้รับข้อมูลจากคอมพิวเตอร์ควอนตัม ออบเจกต์เหล่านี้มีเมธอด run() สำหรับรัน Circuit, observable และพารามิเตอร์ (ถ้ามี) โดยใช้ primitive unified bloc (PUB)
# Create a sampler instance using the selected backend
sampler = Sampler(backend)
# Run the sampler primitive on ISA circuit for specified number of shots (1024)
job_sampler = sampler.run([isa_circuit_sampler], shots=1024)
# Save the result of the job
result_sampler = job_sampler.result()
Step 4. ประมวลผลข้อมูลหลังการรัน
ขั้นตอนนี้คือการประมวลผลผลลัพธ์ที่ได้ อาจนำผลลัพธ์เหล่านี้ไปใส่ใน workflow อื่นเพื่อวิเคราะห์เพิ่มเติม หรือเตรียมกราฟแสดงค่าและข้อมูลสำคัญ โดยทั่วไปขั้นตอนนี้จะขึ้นอยู่กับปัญหาของแต่ละคน
- สำหรับ
Samplerเราพล็อต probability distribution ที่ได้จากการสุ่มตัวอย่าง quantum circuit ตามจำนวน shots ที่กำหนดโดยใช้plot_histogram
from qiskit.visualization import plot_histogram
counts = result_sampler[0].data.meas.get_counts()
# Note: meas is the default name of the classical register when using measure_all().
# If you specify a classical register, then use the name you assign
# Plot the result
plot_histogram(counts)

รันโปรแกรมบนอุปกรณ์จริง
ถ้าอยากรันโค้ดนี้บนอุปกรณ์จริง ใช้โค้ดด้านล่างนี้ได้เลย
from qiskit_ibm_runtime import QiskitRuntimeService
# View the list of backends you have access to
service = QiskitRuntimeService()
service.backends()
management.get:WARNING:2025-11-03 14:24:36,838: Loading default saved account
[<IBMBackend('ibm_fez')>,
<IBMBackend('ibm_brisbane')>,
<IBMBackend('ibm_torino')>,
<IBMBackend('ibm_marrakesh')>]
# Get backend
backend_real = service.least_busy(simulator=False, operational=True)
#backend_real = service.backend(name="insert_backend_name") # use this if you want to choose a specific backend
sampler = Sampler(backend_real)
pm = generate_preset_pass_manager(backend=backend_real, optimization_level=3)
isa_circuit = pm.run(qc)
job = sampler.run([isa_circuit], shots=1024)
print(job.job_id)
<bound method BasePrimitiveJob.job_id of <RuntimeJobV2('d444lcg7i53s73e4n6tg', 'sampler')>>
result = job.result()
print(
f"Name: {backend_real.name}\n"
f"Version: {backend_real.version}\n"
f"Native gate set: {backend_real.operation_names}\n"
)
Name: ibm_fez
Version: 2
Native gate set: ['delay', 'cz', 'id', 'sx', 'measure', 'reset', 'if_else', 'rz', 'x']
counts = result[0].data.meas.get_counts()
plot_histogram(counts)

ดึงผลลัพธ์จาก job ที่เสร็จแล้ว
เซลล์ด้านล่างนี้แสดงวิธีดึงผลลัพธ์จาก job ที่รันเสร็จไปแล้ว
service = QiskitRuntimeService()
retrieved_job = service.job('d40mquhsg33c73dhhs00')
result = retrieved_job.result()
counts = result[0].data.meas.get_counts()
plot_histogram(counts)
management.get:WARNING:2025-11-03 14:24:55,135: Loading default saved account
