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

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 は測定の繰り返し回数。多いほど確率が正確に見える
  • 実機はノイズが乗る。それが誤り訂正の必要性を実感させてくれる

次の一歩 🌸

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

あわせて読みたい