# Qiskitライブラリーを導入
from qiskit import *

# 描画のためのライブラリーを導入
import matplotlib.pyplot as plt
%matplotlib inline

# Qiskitバージョンの確認
qiskit.__qiskit_version__

# 2量子ビット回路を用意
q = QuantumCircuit(2,2)    # ２量子ビット回路と２ビットの古典レジスターを用意します。

# 回路を描画
q.draw(output="mpl")

# 量子ゲートで回路を作成
q.h(0)   # Hゲートを量子ビットq0に実行します。
q.h(1)   # Hゲートを量子ビットq1に実行します。
# q.h([0,1])    # またはこのように書くこともできます。

# 回路を描画
q.draw(output="mpl")

# 状態ベクトルシミュレーターの実行
vector_sim = Aer.get_backend('statevector_simulator')
job = execute(q, vector_sim )
result = job.result().get_statevector(q, decimals=3)

print(result)

# 回路を測定
q.measure(0,0)
q.measure(1,1)

# 回路を描画
q.draw(output='mpl')

# QASMシミュレーターで実験
simulator = Aer.get_backend('qasm_simulator')
job = execute(q, backend=simulator, shots=1024)
result = job.result()

#  測定された回数を表示
counts = result.get_counts(q)
print(counts)

## ヒストグラムで測定された確率をプロット
from qiskit.visualization import *
plot_histogram( counts )