02 zirkuitua: Lau Qubit eta Multi-Controled-X Atea

Ariketa honetan, Multi-Controled-X atea duen zirkuitu bat prestatuko dugu.



Kontrol-qubit guztiak ∣1⟩ egoeran badaude, NOT (X) eragiketa aplikatzen zaio qubit objektiboari, haren egoera aldatuz ∣0⟩tik ∣1⟩era edo ∣1⟩etik ∣0⟩ra

Hori egiaztatzeko, X ateak aplikatuza kontrol-qubitak ∣1⟩ jarriko ditugu, eta ikusi beharko genuke exekuzio guztietan (10.000etan) q3 qubitaren egoera '1' dela.

Kodean Hadamard ateen aplikazioa itzalita dago (#), emaitzei nola eragiten dien probatu ahal izateko.

 

# CIRCUITO-02 : CUATRO QUBIT CON UNA PUERTA multi-controled-X

from qiskit import QuantumCircuit                          # Importa la clase QuantumCircuit de Qiskit
from qiskit_aer import Aer                                 # Importa el módulo Aer de Qiskit Aer
from qiskit.circuit.library import HGate, MCXGate          # Importa la puerta MCX

mcx_gate = MCXGate(3)              # define una MCX de 3 qubits

qc = QuantumCircuit(4, 1)          # define un circuito de 3 qubits y un bit para medir

qc.x(0), qc.x(1), qc.x(2)          # pone a en estado 1 los tres qubits

# qc.h(0), qc.h(1), qc.h(2)        # Para probar con puertas Hadamard  

qc.append(mcx_gate, [1, 0, 2, 3])  # incorpora al circuito un apuerta MCX con el qubit 3 como objetivo (el último que se le indique)

# qc.measure (0,0)
# qc.measure (1,1)
# qc.measure (2,2)

qc.measure (3,0)                   # mide el estado del qubit 3
qc.draw('mpl')                     # dibujar el circuito

# CIRCUITO-02 : LO EJECUTAMOS 10.000 VECES Y VEMOS LOS RESULTADOS

# Configuración del simulador cuántico

Procesando = Aer.get_backend('qasm_simulator')  # Obtiene el backend 'qasm_simulator' de Qiskit Aer

# Ejecución del circuito cuántico en el simulador cuántico
Proceso = Procesando.run(qc, shots=10000).result()  # Ejecuta el circuito cuántico 10000 veces y obtiene los resultados

# Obtención de los resultados de la ejecución
Resultados = Proceso.get_counts(qc)  # Obtiene los conteos de los resultados de la ejecución del circuito
print(Resultados)  # Imprime los resultados en la consola
{'1': 10000}

 



BUELTATU
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram