In [1]:
from qiskit import QuantumCircuit, QuantumRegister
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService.save_account(channel="ibm_quantum", token="HIER IHR TOKEN EINSETZEN", set_as_default=True, overwrite=True)
from qiskit.providers.basic_provider import BasicSimulator
backend = BasicSimulator()

import random
In [2]:
def Uf(qubits,f):
    if (f[0]==0 and f[1]==0):
        return qubits    
    elif (f[0]==1 and f[1]==1):
        qubits.x(1)
        return qubits    
    elif (f[0]==0 and f[1]==1):
        qubits.cx(0,1)
        return qubits    
    elif (f[0]==1 and f[1]==0):   
        qubits.x(0)
        qubits.cx(0,1)
        qubits.x(0)
        return qubits    
    return qubits
In [3]:
f=[random.randint(0,1) for _ in range(2)]
#f=[1,0]
In [4]:
circuit = QuantumCircuit(2,1)
circuit.x(1)
circuit.barrier()
circuit.h(0)
circuit.h(1)
circuit.barrier()
Uf(circuit,f)
circuit.barrier()
circuit.h(0)
circuit.measure(0,0)
Out[4]:
<qiskit.circuit.instructionset.InstructionSet at 0x172f3b103d0>
In [5]:
erg = backend.run(circuit, shots=1024).result()
erg.get_counts()
Out[5]:
{'0': 1024}
In [6]:
print(f)
[1, 1]
In [7]:
circuit.draw('mpl')
Out[7]:
No description has been provided for this image
In [ ]: