Skip to main content
IBM Quantum Platform

PolynomialPauliRotations

class qiskit.circuit.library.PolynomialPauliRotations(num_state_qubits=None, coeffs=None, basis='Y', name='poly')

GitHub

ベース: FunctionalPauliRotations

多項式パウリ回転を実装した回路。

basis="Y"多項式 pp、状態レジスタの基底状態 i|i\rangle、および 0|0\rangle で初期化されたターゲット量子ビットに対して、この演算子はターゲット量子ビットに角度 p(i)p(i) のパウリ回転を適用します。デフォルトの設定では、これは次のように動作します:

0icos(p(i)2)0i+sin(p(i)2)1i|0\rangle |i\rangle \mapsto \cos\left(\frac{p(i)}{2}\right) |0\rangle |i\rangle + \sin\left(\frac{p(i)}{2}\right) |1\rangle |i\rangle

basis="X"について、対象の量子ビットに対する作用は次のとおりである:

0icos(p(i)2)0iisin(p(i)2)1i|0\rangle |i\rangle \mapsto \cos\left(\frac{p(i)}{2}\right) |0\rangle |i\rangle - i\sin\left(\frac{p(i)}{2}\right) |1\rangle |i\rangle

basis="Z"について、対象の量子ビットに対する作用は次のとおりである:

0ieip(i)/20i|0\rangle |i\rangle \mapsto e^{-i p(i) / 2} |0\rangle |i\rangle

nn をその状態を表す量子ビットの数、 ddpp の次数、 qiq_i を量子ビットの数とし、ここで q0q_0 は最下位の量子ビットとする。 次に、

x=i=0n12iqi,x = \sum_{i=0}^{n-1} 2^i q_i,

と書くことができる

p(x)=j=0j=dcjxjp(x) = \sum_{j=0}^{j=d} c_j x^j

ここで、 cc は入力係数、 coeffs.

パラメーター

  • num_state_qubits (int | None) – 状態を表す量子ビットの数。
  • coeffs (list[float] | None) – 多項式の係数。 [0, 1]``coeffs[i] xix^i の係数です。デフォルトは線形です:。
  • basis (str) – パウリ回転の種類("X", "Y", "Z")。
  • name (str) – 回路の名前。

属性

coeffs

多項式の係数。

coeffs[i] は、関数入力 xx のi乗の係数である。つまり、回転角度は、次の式に従って、係数の値に基づいている

cjxj,j=0,...,dc_j x^j , j=0, ..., d

ここで、 dd は多項式 p(x)p(x) の次数、 cc は係数 coeffs

戻り値

多項式の係数。

degree

多項式の次数を返します。これは係数の数から 1 を引いた値に等しくなります。

戻り値

多項式の次数。 係数が設定されていない場合は0を返す。

name

タイプ: str

人間が読める回路名。

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
このページは役に立ちましたか?
バグや誤字の報告、またはコンテンツの要求はGitHubで行ってください。