A beginner question after watching few videos.
var can be either of two values,
b. Check what is the value of
QISKit or similar.
Quantum Computing Stack Exchange is a question and answer site for engineers, scientists, programmers, and computing professionals interested in quantum computing. It only takes a minute to sign up.Sign up to join this community
You can check for state equality with the SWAP test.
Quantum fingerprinting (Buhrman, Cleve, Watrous & de Wolf, 2001) seems to be the first paper to introduce the SWAP test.
The idea behind this test is:
You can repeat the procedure multiple times to ensure that the 2 states are equal up to a given probability.
You can implement by yourself the test on QISKit:
from qiskit import ClassicalRegister, QuantumRegister, QuantumCircuit, execute from qiskit import IBMQ, BasicAer q_simulator = BasicAer.get_backend('qasm_simulator') register_size = 2 qr_psi = QuantumRegister(register_size, 'psi') #For state PSI qr_phi = QuantumRegister(register_size, 'phi') #For state PHI qr_ancilla = QuantumRegister(1, 'ancilla') cequal = ClassicalRegister(1, 'equal') circuit = QuantumCircuit() circuit.add_register(qr_psi) circuit.add_register(qr_phi) circuit.add_register(qr_ancilla) circuit.add_register(cequal) def cswap(circuit, ctrl, q1, q2) -> None: assert(len(q1) == len(q2), "The swapped register sizes should match") for i in range(len(q1)): # Controlled swap circuit.ccx(ctrl, q1[i], q2[i]) circuit.ccx(ctrl, q2[i], q1[i]) circuit.ccx(ctrl, q1[i], q2[i]) def equality_test(circuit, ancilla, q1, q2, classical_register) -> None: assert(len(q1) == len(q2), "The swapped register sizes should match") circuit.h(ancilla) cswap(circuit, ancilla, q1, q2) circuit.h(ancilla) circuit.measure(ancilla, classical_register) ## Initialisation # We add Hadamard to all the registers - to create PSI circuit.h(qr_psi) # We add Hadamard to all the registers - to create PHI # Modify the initialisation of either PHI or PSI and check the results. circuit.x(qr_phi) circuit.h(qr_phi) ## SWAP test equality_test(circuit, qr_ancilla, qr_psi, qr_phi, cequal) res_qasm = execute([circuit], q_simulator, shots=1024).result() counts = res_qasm.get_counts() print(counts)
You can convince yourself that the method works with high probability by changing the initialisation step of the two registers and check the results when the 2 register match or don't match.
Once you have the measurement of the Qubit, you can use things like
for or other control flow statements to control your program execution based on the variable values.
Does that answer your question?