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) – 다항식의 계수. coeffs[i] xix^i 의 계수입니다. 기본값은 선형입니다: [0, 1].
  • 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에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.