From d8c69f2ff9500495b53f45a78448ec76263843da Mon Sep 17 00:00:00 2001 From: Abhishek Jaisingh Date: Sun, 11 Oct 2020 04:19:40 +0530 Subject: [PATCH 1/8] Add First Quantum Qiskit Code Tutorial --- quantum/q1.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 quantum/q1.py diff --git a/quantum/q1.py b/quantum/q1.py new file mode 100644 index 000000000000..d653b09154d7 --- /dev/null +++ b/quantum/q1.py @@ -0,0 +1,28 @@ +import qiskit as q + +""" +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. +""" + +# Use Aer's qasm_simulator +simulator = q.Aer.get_backend('qasm_simulator') + +# Create a Quantum Circuit acting on the q register +circuit = q.QuantumCircuit(1, 1) + +# 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) + +# Grab results from the job +result = job.result() + +# Returns counts +counts = result.get_counts(circuit) +print("\nTotal count for varopis staes are:", counts) From d7bb6d3b8c7c703b3812978c63f64543af0e710b Mon Sep 17 00:00:00 2001 From: Abhishek Jaisingh Date: Sun, 11 Oct 2020 05:12:34 +0530 Subject: [PATCH 2/8] Add Qiskit Requirement --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 31dc586c29db..67d9bbbd8448 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,6 +7,7 @@ numpy opencv-python pandas pillow +qiskit requests scikit-fuzzy sklearn From e05c4d38693daf98b87ba5ce09d014d1d8a6b336 Mon Sep 17 00:00:00 2001 From: Abhishek Jaisingh Date: Sun, 11 Oct 2020 23:35:17 +0530 Subject: [PATCH 3/8] Address Review Comments --- quantum/q1.py | 53 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 20 deletions(-) mode change 100644 => 100755 quantum/q1.py diff --git a/quantum/q1.py b/quantum/q1.py old mode 100644 new mode 100755 index d653b09154d7..c9a9fdb74059 --- a/quantum/q1.py +++ b/quantum/q1.py @@ -1,28 +1,41 @@ -import qiskit as q - +#!/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. +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 """ -# Use Aer's qasm_simulator -simulator = q.Aer.get_backend('qasm_simulator') -# Create a Quantum Circuit acting on the q register -circuit = q.QuantumCircuit(1, 1) +import qiskit as q + + +def single_qubit_measure() -> q.result.counts.Counts: + """ + >>> single_qubit_measure() + {'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(1, 1) + + # 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) + + # Grab results from the job + result = job.result() -# Map the quantum measurement to the classical bits -circuit.measure([0], [0]) + # Get the histogram data of an experiment. + counts = result.get_counts(circuit) -# Execute the circuit on the qasm simulator -job = q.execute(circuit, simulator, shots=1000) + return counts -# Grab results from the job -result = job.result() -# Returns counts -counts = result.get_counts(circuit) -print("\nTotal count for varopis staes are:", counts) +if __name__ == '__main__': + counts = single_qubit_measure() + print("Total count for various states are:", counts) From 5adf8279b9074e4c7c320d17f7680116f707c0c3 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Sun, 11 Oct 2020 18:35:32 +0000 Subject: [PATCH 4/8] fixup! Format Python code with psf/black push --- quantum/q1.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/quantum/q1.py b/quantum/q1.py index c9a9fdb74059..e42c64e372a1 100755 --- a/quantum/q1.py +++ b/quantum/q1.py @@ -11,31 +11,31 @@ def single_qubit_measure() -> q.result.counts.Counts: - """ - >>> single_qubit_measure() - {'0': 1000} - """ - # Use Aer's qasm_simulator - simulator = q.Aer.get_backend('qasm_simulator') + """ + >>> single_qubit_measure() + {'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(1, 1) + # Create a Quantum Circuit acting on the q register + circuit = q.QuantumCircuit(1, 1) - # Map the quantum measurement to the classical bits - circuit.measure([0], [0]) + # 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) + # Execute the circuit on the qasm simulator + job = q.execute(circuit, simulator, shots=1000) - # Grab results from the job - result = job.result() + # Grab results from the job + result = job.result() - # Get the histogram data of an experiment. - counts = result.get_counts(circuit) + # Get the histogram data of an experiment. + counts = result.get_counts(circuit) - return counts + return counts -if __name__ == '__main__': - counts = single_qubit_measure() - print("Total count for various states are:", counts) +if __name__ == "__main__": + counts = single_qubit_measure() + print("Total count for various states are:", counts) From 59b0f1ed3d2f87759db3ff8366c53a7e23b96626 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Mon, 12 Oct 2020 21:34:20 +0200 Subject: [PATCH 5/8] Update q1.py --- quantum/q1.py | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/quantum/q1.py b/quantum/q1.py index e42c64e372a1..c08956ce3c36 100755 --- a/quantum/q1.py +++ b/quantum/q1.py @@ -10,16 +10,16 @@ import qiskit as q -def single_qubit_measure() -> q.result.counts.Counts: +def single_qubit_measure(qubits: int, classical_bits: int) -> q.result.counts.Counts: """ - >>> single_qubit_measure() + >>> 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(1, 1) + circuit = q.QuantumCircuit(qubits, classical_bits) # Map the quantum measurement to the classical bits circuit.measure([0], [0]) @@ -27,15 +27,9 @@ def single_qubit_measure() -> q.result.counts.Counts: # Execute the circuit on the qasm simulator job = q.execute(circuit, simulator, shots=1000) - # Grab results from the job - result = job.result() - - # Get the histogram data of an experiment. - counts = result.get_counts(circuit) - - return counts + # Return the histogram data of the results of the experiment. + return job.result().get_counts(circuit) if __name__ == "__main__": - counts = single_qubit_measure() - print("Total count for various states are:", counts) + print(f"Total count for various states are: {single_qubit_measure(1, 1)}") From 5b0d8df854958b5d7d1f7cc48590f10d4d0b95d2 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Mon, 12 Oct 2020 19:34:56 +0000 Subject: [PATCH 6/8] updating DIRECTORY.md --- DIRECTORY.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/DIRECTORY.md b/DIRECTORY.md index 064a4da23f17..0192fe073852 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -553,11 +553,15 @@ * [Sol2](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_11/sol2.py) * Problem 112 * [Sol1](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_112/sol1.py) + * Problem 119 + * [Sol1](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_119/sol1.py) * Problem 12 * [Sol1](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_12/sol1.py) * [Sol2](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_12/sol2.py) * Problem 120 * [Sol1](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_120/sol1.py) + * Problem 125 + * [Sol1](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_125/sol1.py) * Problem 13 * [Sol1](https://github.com/TheAlgorithms/Python/blob/master/project_euler/problem_13/sol1.py) * Problem 14 @@ -670,6 +674,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 + * [Q1](https://github.com/TheAlgorithms/Python/blob/master/quantum/q1.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) From 0fba9894d29433cbad78c6854bd12e12213e1fcf Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Mon, 12 Oct 2020 21:35:04 +0200 Subject: [PATCH 7/8] Update and rename q1.py to single_qubit_measure.py --- quantum/{q1.py => single_qubit_measure.py} | 1 - 1 file changed, 1 deletion(-) rename quantum/{q1.py => single_qubit_measure.py} (99%) diff --git a/quantum/q1.py b/quantum/single_qubit_measure.py similarity index 99% rename from quantum/q1.py rename to quantum/single_qubit_measure.py index c08956ce3c36..99d807b034e4 100755 --- a/quantum/q1.py +++ b/quantum/single_qubit_measure.py @@ -6,7 +6,6 @@ Qiskit Docs: https://qiskit.org/documentation/getting_started.html """ - import qiskit as q From 6afe7a5476bcd0b28f372e5695c5a3c8818d8690 Mon Sep 17 00:00:00 2001 From: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Date: Mon, 12 Oct 2020 19:35:31 +0000 Subject: [PATCH 8/8] updating DIRECTORY.md --- DIRECTORY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DIRECTORY.md b/DIRECTORY.md index 0192fe073852..7879669e6771 100644 --- a/DIRECTORY.md +++ b/DIRECTORY.md @@ -675,7 +675,7 @@ * [Validate Solutions](https://github.com/TheAlgorithms/Python/blob/master/project_euler/validate_solutions.py) ## Quantum - * [Q1](https://github.com/TheAlgorithms/Python/blob/master/quantum/q1.py) + * [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)