WeightedAdder
class qiskit.circuit.library.WeightedAdder(num_state_qubits=None, weights=None, name='adder')
ベース: BlueprintCircuit
量子ビットレジスタの重み付き和を計算する回路。
クビット基底状態 と非負整数重み が与えられると、この回路は次の演算を行う
ここで、 は必要な合計量子ビットの数である。 これは次のように計算できる
または、重みの合計が0の場合は (対数の式は無効)。
回路図中の量子ビットの場合、最初のウェイトは一番上の量子ビットに適用される。 4個の量子ビットの状態を和レジスタに加算する例では、回路は次のように概略的に描くことができる
┌────────┐
state_0: ┤0 ├ | state_0 * weights[0]
│ │ |
state_1: ┤1 ├ | + state_1 * weights[1]
│ │ |
state_2: ┤2 ├ | + state_2 * weights[2]
│ │ |
state_3: ┤3 ├ | + state_3 * weights[3]
│ │
sum_0: ┤4 ├ |
│ Adder │ |
sum_1: ┤5 ├ | = sum_0 * 2^0 + sum_1 * 2^1 + sum_2 * 2^2
│ │ |
sum_2: ┤6 ├ |
│ │
carry_0: ┤7 ├
│ │
carry_1: ┤8 ├
│ │
control_0: ┤9 ├
└────────┘パラメーター
- num_state_qubits (int | None) – 状態量子ビットの数。
- weights (list[int] | None) – 各状態量子ビットに対応する重みのリスト。 指定がない場合、各量子ビットに対してデフォルト値は1となります。
- name (str) – 回路の名前。
属性
num_carry_qubits
和を計算するのに必要なキャリー量子ビットの数。
これは必ずしもアンシラ量子ビットの数と同じではないことに注意してほしい。これらは num_ancilla_qubits を使って問い合わせることができる。
戻り値
和を計算するのに必要なキャリー量子ビットの数。
num_control_qubits
追加で必要な制御量子ビットの数。
アンシラ量子ビットの総数は、メソッド num_ancilla_qubits を呼び出すことで得られることに注意。
戻り値
追加で必要な制御量子ビットの数(0または1)。
num_state_qubits
合計される量子ビットの数。
戻り値
状態量子ビットの数。
num_sum_qubits
回路内の和量子ビットの数。
戻り値
量子ビットの加重和を表すのに必要な量子ビットの数。
weights
量子ビットの状態の重み。
戻り値
量子ビット状態の重み。
name
タイプ: str
人間が読める回路名。
例
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuitこのページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。