Qiskitでレジスタを扱う(QuantumRegister、ClassicalRegister)
この記事ではQiskitで量子レジスタおよび古典レジスタを扱う方法について説明する。
https://qiskit.org/documentation/locale/ja_JP/stubs/qiskit.circuit.QuantumRegister.html#qiskit.circuit.QuantumRegister https://qiskit.org/documentation/locale/ja_JP/stubs/qiskit.circuit.ClassicalRegister.html#qiskit.circuit.ClassicalRegister
Qiskitで量子レジスタと古典レジスタを生成するには、それぞれqiskit
モジュールに含まれるQuantumRegister
とClassicalRegister
を使う。
from qiskit import QuantumRegister, ClassicalRegister
これらはともにRegister
のサブクラスになっている。
コンストラクタの引数として、基本的にはビット数(size
)と名前(name
)を指定する。
QuantumRegister(2, 'qbit1') # > 2つの量子ビットからなるレジスタをqbit1という名前で生成 ClassicalRegister(3, 'cbit1') # > 3つの古典ビットからなるレジスタをcbit1という名前で生成
名前(name
)の指定は任意。指定しなかった場合は一意な名前が自動的に付与される。
QuantumRegister(5) # > 5つの量子ビットからなるレジスタを生成。名前はq0などが自動的に割り当てられる
一方、ビット数(size
)を指定しないと、例外CircuitError
が発生する。
QuantumRegister() # > CircuitError: 'Exactly one of the size or bits arguments can be provided. Provided size=None bits=None.'
これらのレジスタは基本的に、量子回路に組み込んで使う。
レジスタを利用した量子回路の初期化方法については以下の記事を参照。