メインコンテンツへスキップ

クイックスタート

パッケージのバージョン

このページのコードは、以下の要件を使用して開発されました。 これらのバージョン以降を使用することをお勧めします。

qiskit[all]~=2.4.0
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit

ローカル環境で2分以内に最初の量子回路を構築できます。サインインやAPIキーは必要ありません。

Pythonや仮想環境が初めての方へ
  • Pythonをダウンロードして、Qiskitと一緒に仮想環境を使用してください(推奨)。
Pythonの詳細については、ここをクリックして展開してください。
  • Pythonをインストールするには、まずQiskit PyPIプロジェクトページの「Programming Language」セクションで、最新リリースがサポートしているPythonのバージョンを確認してください。ダウンロード手順については、Python Beginners Guideを参照してください。
備考

これらの手順ではpypi.orgの標準Pythonディストリビューションを使用しています。ただし、Anacondaminicondaなどの他のPythonディストリビューション、またPoetryなどの他の依存関係管理ワークフローも使用できます。

仮想環境の詳細については、ここをクリックして展開してください。

  • Python仮想環境を使用して、Qiskitをほかのアプリケーションと分離します。Python仮想環境は、特定の目的のためにPythonで作業するための隔離されたスペースです。希望するパッケージをインストールしたり、ライブラリや依存関係などを設定したりできます。これはマシン上の「ベース」Python環境に影響を与えません。

仮想環境の重要な利点の一つは、Python環境が壊れた場合でも、簡単に削除して最初からやり直せることです。

仮想環境の情報を保存する場所を選択してください。通常、各プロジェクトディレクトリ内の .venv という名前のディレクトリに保存されます。

仮想環境を設定するには、プロジェクトディレクトリに移動して、Pythonのみがインストールされた最小限の環境を作成します。

python3 -m venv .venv

次に、新しい環境をアクティベートします。

source .venv/bin/activate

1. Qiskitをインストールする

お好みのパッケージマネージャー(pipなど)で以下をインストールしてください。

2. 回路を構築する

Pythonの実行環境を開き、次のコードを実行してBell状態(量子もつれ状態にある2つの量子ビット)を構築します。

from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler

qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()

sampler = StatevectorSampler()
result = sampler.run([qc], shots=1024).result()
print(result[0].data.meas.get_counts())
{'11': 498, '00': 526}

期待される出力は、'00' と '11' がほぼ均等に分かれたものです。

3. 結果を可視化する

結果のヒストグラムを取得するには、プログラムに次のコードを追加します。

# Uncomment lines 2 and 8 if you are not using Python in a Jupyter notebook
# import matplotlib.pyplot as plt
from qiskit.visualization import plot_histogram

counts = result[0].data.meas.get_counts()
plot_histogram(counts)

# plt.show()

Output of the previous code cell

この結果は量子もつれの明確な証拠です。

4. 変化を確認する

コードを変更して結果にどのような影響があるか試してみましょう。例えば:

  • QuantumCircuit(3) に変更して3番目の量子ビットを追加し、qc.cx(1,2) で2番目のCXゲートを追加します。測定結果は000と111に変わり、これら3つの量子ビットすべてが量子もつれ状態にあることを意味します。

  • 回路の末尾に qc.x(1) を追加することで、結果がシフトする様子を確認できます。

次のステップ

おすすめ