手を上げるキュビットくんゆるふわ量子コンピュータ
計算中のキュビットくん

Qiskit入門|量子回路をPythonで書いて動かしてみる【2026年版】

2026-08-09実践

#Qiskit#Python#量子回路#実践

量子コンピュータは、実は手元のPCから無料で触れます。IBMが公開するPythonライブラリ Qiskit(キスキット) を使えば、量子回路を書いてシミュレータや実機で動かせます。この記事で最初の一歩を踏み出しましょう。

準備するもの

  • Python 3.9以降
  • (実機を使うなら)IBM Quantumの無料アカウント

インストール

pip install qiskit qiskit-aer

qiskit-aer はローカルで動く量子シミュレータです。まずはこれで十分。

最初の量子回路: 重ね合わせ

1個の量子ビットにアダマールゲート(解説)をかけて、重ね合わせを作ってみます。

from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator

qc = QuantumCircuit(1, 1)   # 量子ビット1個、古典ビット1個
qc.h(0)                     # アダマールで重ね合わせ
qc.measure(0, 0)            # 測定

sim = AerSimulator()
result = sim.run(qc, shots=1000).result()
print(result.get_counts())

実行すると {'0': 503, '1': 497} のような結果が出ます。約半々——重ね合わせを測定すると0と1が50%ずつになる、あの現象がコードで確認できました。

🌱

shots って何?

量子は測定するたびに結果が変わるので、1回では傾向がわかりません。shots=1000 は「1000回繰り返して集計する」指定です。回数を増やすほど、確率が正確に見えてきます。

もつれた2量子ビットを作る

量子コンピュータの醍醐味、量子もつれを作ります。

qc = QuantumCircuit(2, 2)
qc.h(0)          # 0番目を重ね合わせ
qc.cx(0, 1)      # CNOTでもつれさせる
qc.measure([0, 1], [0, 1])

result = AerSimulator().run(qc, shots=1000).result()
print(result.get_counts())

結果は {'00': 501, '11': 499} のようになります。注目は**「00」と「11」しか出ない**こと。「01」や「10」が出ません。

これがもつれです。片方が0なら必ずもう片方も0、片方が1なら必ず1。2つの量子ビットが運命を共にしているのが、数字で見えました。

実機で動かす

シミュレータに慣れたら、本物の量子コンピュータで動かせます。IBM Quantumにアカウント登録し、APIトークンを取得すれば、クラウド経由で実機のキューに投入できます。

# イメージ(要アカウント・トークン設定)
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService()
backend = service.least_busy()   # 空いている実機を選ぶ
⚠️

実機ならではの現実

実機の結果にはノイズが乗ります。もつれの実験でも「01」「10」が数%出てきます。「理論通りにならない」のが本物の量子コンピュータ。この誤りと戦うのが誤り訂正の世界です。

学習リソース

  • IBM Quantum Learning — 公式の無料学習コース(英語)
  • Qiskit公式ドキュメント — APIリファレンスとチュートリアル

エラーが出たら、そのままAI(ChatGPTやClaude)に貼って聞くのが2026年の最速デバッグ法です。

まとめ

  • Qiskitを使えば手元のPCから量子回路を無料で試せる
  • qc.h(0) で重ね合わせ、qc.cx(0,1) でもつれが作れる
  • shots は測定の繰り返し回数。多いほど確率が正確に見える
  • 実機はノイズが乗る。それが誤り訂正の必要性を実感させてくれる

もう少し詳しく(背景と理論)

Qiskit は IBM が2017年に公開したオープンソースの量子計算SDKで1、回路の構築・トランスパイル・実機/シミュレータ実行・結果解析を一貫して扱えます。ここで作った回路は「ゲートの列」ですが、実機で動かす際にはその実機が実行できる基本ゲート集合(ネイティブゲート)へトランスパイル(変換・最適化)されます2。測定でしか古典情報を取り出せないこと、状態は測定で壊れること(射影測定)は、量子プログラミング特有の制約です3

次の一歩 🌸

理論を深めるなら量子アルゴリズム入門、量子ビットの基礎に戻るなら量子ビット超入門へどうぞ。

Footnotes

  1. Qiskit は Apache-2.0 ライセンスの OSS。2024年に安定版 Qiskit 1.0 がリリースされ、API が整理された。本サイトのコードは Qiskit 2 系を前提としている。

  2. 実機ごとに実行可能な基本ゲート(例: sx, rz, cx)と量子ビットの結合(カップリングマップ)が異なるため、論理回路をそれに合わせて変換・最適化する必要がある(トランスパイルの詳細)。

  3. 量子測定は状態を基底へ射影し、確率 |振幅|² で古典ビットを返す。同じ回路を多数回実行(ショット)して統計を取るのが基本。1回の実行から状態全体を読み出すことはできない(複製不可定理とも関係する)。

🔥 この分野の最新トレンドをチェック →

学習コース

9 / 13 本目

学習コースの全体を見る

あわせて読みたい