Python

파이선 코딩 초보자를 위한 Colab 양자 컴퓨팅: 파울리 X 게이트 테스트 코드

coding art 2025. 12. 25. 16:49
728x90

하나의 큐비트가 |0> 또는 |1>로 지정되어 있으면 파울리 X 게이트는 위상을 반전시킨다.

즉 |0>은 |1>로, |1>은 |0>으로 변환한다.

 

!pip install qiskit # 2025년 12월 Xmas 현재 버전이 2.x 이다.

import qiskit # qiskit 라이브러리를 부른다.

qiskit.version.get_version_info() # 라이브러리 버전을 확인한다.

 

!pip install pylatexenc # "양자 회로를 고해상도로 그리기 위한 통역사" 역할

 

qc = QuantumCircuit(1,1) # 큐비트 1개 와 측정 후 저장할 메모리 1개

 

qc.x(0) # |0> 을 파울리 X 게이트에 적용

qc.measure_all() #측정

qc.draw()

sampler = StatevectorSampler()

job = sampler.run([qc], shots=1024)

result = job.result()[0]

counts = result.data.meas.get_counts()

print(f"측정 결과: {counts}")

 

측정 결과: {'1': 1024}

 

from qiskit.visualization import plot_histogram

plot_histogram(counts)

 

 

큐비트 입력이 Default 로 |0> 이며 파울리 X 게이트 적용 결과 양자 회로 1024회 실행 시 측정 결과 100% ”|1>“ 로 확인

이런 경우는 중첩 상태를 만드는 과정이 없었으므로 1회만 해도 될 것임.

 

PauliX.ipynb
0.00MB

 

큐비트 입력이 Default |0> 이며 파울리 X 게이트 적용 결과 |1> 이 된다. 연이어 파울리 X게이트를 적용하면 다시 |0>이 된다. 양자 회로상으로는 여전히 큐비트 하나만 사용하므로 QuantumCircuit(1,1) 일이 된다.

qc = QuantumCircuit(1, 1)

qc.x(0)

qc.barrier()

qc.x(0)

qc.measure_all()

qc.draw()

 

sampler = StatevectorSampler()

job = sampler.run([qc], shots=1024)

result = job.result()[0]

counts = result.data.meas.get_counts()

print(f"측정 결과: {counts}")

 

측정 결과: {'0': 1024}

 

inversePauliX.ipynb
0.02MB