Skip to content

Instantly share code, notes, and snippets.

View frankzickert's full-sized avatar

Frank Zickert frankzickert

View GitHub Profile
# YOUR CODE GOES HERE
qc.ry(prob_to_angle(0.7), 0)
from math import asin, sqrt
def prob_to_angle(theta):
return 2*asin(sqrt(theta))
from qiskit import QuantumCircuit, execute, Aer
from qiskit.visualization import plot_histogram
# Create a quantum circuit with one qubit
qc = QuantumCircuit(1)
# YOUR CODE GOES HERE
qc.ry(pi/2, 0)
# measure the qubit
from qiskit import QuantumRegister, QuantumCircuit, ClassicalRegister, Aer, execute
from qiskit.visualization import plot_histogram
DIGITS = 3
def oracle(secret, as_gate=True):
o_qc = QuantumCircuit(DIGITS+1)
for i in range(DIGITS):
if secret[::-1][i] == '1':
from qiskit import Aer, execute
from qiskit.visualization import plot_histogram
results = execute(qc,Aer.get_backend('qasm_simulator'), shots=1000).result().get_counts()
plot_histogram(results)
from qiskit import ClassicalRegister
cr = ClassicalRegister(DIGITS, "cr")
qr = QuantumRegister(DIGITS, "digits")
qc = QuantumCircuit(qr, aux, cr)
# ...
qc.measure(qr, cr)
qc.append(oracle('101'), [*qr, *aux])
def oracle(secret, as_gate=True):
o_qc = QuantumCircuit(DIGITS+1)
for i in range(DIGITS):
if secret[::-1][i] == '1':
o_qc.cx(i,DIGITS)
else:
o_qc.i(i)
return o_qc.to_gate(label="oracle") if as_gate else o_qc
qc.x(aux)
qc.h(aux)