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

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

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

# １量子ビット回路を定義
q1 = QuantumCircuit(1)

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

# 量子ゲートで回路を作成
q1.x(0)
q1.x(0)

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

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

print(result)

# １量子ビット回路を定義
q2 = QuantumCircuit(1)

# 量子ゲートで回路を作成
q2.h(0)

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

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

print(result)

# １量子ビット回路を定義
q3 = QuantumCircuit(1)

# 量子ゲートで回路を作成
q3.h(0)
q3.h(0)

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

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

print(result)

# １量子ビット回路を定義
q4 = QuantumCircuit(1)

# 量子ゲートで回路を作成
q4.x(0)
q4.h(0)

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

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

print(result)

# １量子ビット回路を定義
q5 = QuantumCircuit(1)

# 量子ゲートで回路を作成
q5.h(0)
q5.z(0)

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

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

print(result)

# １量子ビット回路を定義
q6 = QuantumCircuit(1)

# 量子ゲートで回路を作成
q6.x(0)
q6.h(0)
q6.z(0)

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

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

print(result)

