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,secret):
for q in range(n):
if a[q]:
qubits.cx(q, n)
return qubits
In [3]:
n=5
a=[random.randint(0,1) for _ in range(n)]
In [4]:
circuit = QuantumCircuit(n+1,n)
circuit.x(n)
circuit.barrier()
circuit.h(n)
for i in range(n):
circuit.h(i)
circuit.barrier()
Uf(circuit,a)
circuit.barrier()
for i in range(n):
circuit.h(i)
for i in range(n):
circuit.measure(n-1-i, i)
In [5]:
erg = backend.run(circuit, shots=1024).result()
erg.get_counts()
Out[5]:
{'10010': 1024}
In [6]:
print(a)
[1, 0, 0, 1, 0]
In [7]:
circuit.draw('mpl')
Out[7]:
In [ ]: