diff --git a/DIRECTORY.md b/DIRECTORY.md index c1358b8d7..eee4ae55c 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -681,6 +681,9 @@ * [Sol1](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_99/sol1.py) * [Validate Solutions](https://github.com/TheAlgorithms/Python/blob/master/project_euler/validate_solutions.py) +## Quantum + * [Single Qubit Measure](https://github.com/TheAlgorithms/Python/blob/master/quantum/single_qubit_measure.py) + ## Scheduling * [First Come First Served](https://github.com/TheAlgorithms/Python/blob/master/scheduling/first_come_first_served.py) * [Round Robin](https://github.com/TheAlgorithms/Python/blob/master/scheduling/round_robin.py) diff --git a/quantum/single_qubit_measure.py b/quantum/single_qubit_measure.py new file mode 100755 index 000000000..99d807b03 --- /dev/null +++ b/quantum/single_qubit_measure.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +""" +Build a simple bare-minimum quantum circuit that starts with a single +qubit (by default, in state 0), runs the experiment 1000 times, and +finally prints the total count of the states finally observed. +Qiskit Docs: https://qiskit.org/documentation/getting_started.html +""" + +import qiskit as q + + +def single_qubit_measure(qubits: int, classical_bits: int) -> q.result.counts.Counts: + """ + >>> single_qubit_measure(1, 1) + {'0': 1000} + """ + # Use Aer's qasm_simulator + simulator = q.Aer.get_backend("qasm_simulator") + + # Create a Quantum Circuit acting on the q register + circuit = q.QuantumCircuit(qubits, classical_bits) + + # Map the quantum measurement to the classical bits + circuit.measure([0], [0]) + + # Execute the circuit on the qasm simulator + job = q.execute(circuit, simulator, shots=1000) + + # Return the histogram data of the results of the experiment. + return job.result().get_counts(circuit) + + +if __name__ == "__main__": + print(f"Total count for various states are: {single_qubit_measure(1, 1)}") diff --git a/requirements.txt b/requirements.txt index 31dc586c2..67d9bbbd8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,7 @@ numpy opencv-python pandas pillow +qiskit requests scikit-fuzzy sklearn