
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}