
Qiskit入門|量子回路をPythonで書いて動かしてみる【2026年版】
2026-08-09 ・ 実践
量子コンピュータは、実は手元の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は測定の繰り返し回数。多いほど確率が正確に見える- 実機はノイズが乗る。それが誤り訂正の必要性を実感させてくれる
次の一歩 🌸
理論を深めるなら量子アルゴリズム入門、量子ビットの基礎に戻るなら量子ビット超入門へどうぞ。