qiskitcode 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
qiskitcode/__init__.py
ADDED
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"""qiskitcode — Quantum Lab Practicals: theory + code, printed on the terminal.
|
|
2
|
+
|
|
3
|
+
Usage:
|
|
4
|
+
import qiskitcode
|
|
5
|
+
qiskitcode.p1() # print practical 1 (theory + code)
|
|
6
|
+
qiskitcode.p2() # print practical 2
|
|
7
|
+
qiskitcode.all() # print all practicals
|
|
8
|
+
qiskitcode.show(3) # print practical 3 by number
|
|
9
|
+
qiskitcode.list() # list all practical titles
|
|
10
|
+
|
|
11
|
+
# The class form also works:
|
|
12
|
+
from qiskitcode import Qiskitcode
|
|
13
|
+
Qiskitcode.p1()
|
|
14
|
+
Qiskitcode.all()
|
|
15
|
+
|
|
16
|
+
NOTE: ``qiskitcode.1()`` is not valid Python — an attribute name may not
|
|
17
|
+
start with a digit — so the numbered practicals are ``p1()`` ... ``p6()``.
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
__version__ = "0.1.0"
|
|
21
|
+
|
|
22
|
+
_P1_CODE = '''from qiskit import QuantumCircuit
|
|
23
|
+
from qiskit_aer import AerSimulator
|
|
24
|
+
|
|
25
|
+
qc = QuantumCircuit(1, 1)
|
|
26
|
+
qc.h(0)
|
|
27
|
+
qc.measure(0, 0)
|
|
28
|
+
print(qc.draw())
|
|
29
|
+
|
|
30
|
+
simulator = AerSimulator()
|
|
31
|
+
result = simulator.run(qc, shots=1024).result()
|
|
32
|
+
print(result.get_counts())'''
|
|
33
|
+
|
|
34
|
+
_P2_CODE = '''from qiskit import QuantumCircuit
|
|
35
|
+
from qiskit_aer import AerSimulator
|
|
36
|
+
from qiskit.visualization import plot_histogram
|
|
37
|
+
import matplotlib.pyplot as plt
|
|
38
|
+
|
|
39
|
+
qc = QuantumCircuit(1, 1)
|
|
40
|
+
qc.h(0)
|
|
41
|
+
qc.measure(0, 0)
|
|
42
|
+
|
|
43
|
+
simulator = AerSimulator()
|
|
44
|
+
result = simulator.run(qc, shots=1024).result()
|
|
45
|
+
counts = result.get_counts()
|
|
46
|
+
print(counts)
|
|
47
|
+
display(plot_histogram(counts))'''
|
|
48
|
+
|
|
49
|
+
_P3_CODE = '''from qiskit import QuantumCircuit, transpile
|
|
50
|
+
from qiskit_aer import AerSimulator
|
|
51
|
+
from qiskit.visualization import plot_histogram
|
|
52
|
+
import matplotlib.pyplot as plt
|
|
53
|
+
|
|
54
|
+
qc = QuantumCircuit(2, 2)
|
|
55
|
+
qc.h(0)
|
|
56
|
+
qc.cx(0, 1)
|
|
57
|
+
qc.measure([0, 1], [0, 1])
|
|
58
|
+
|
|
59
|
+
simulator = AerSimulator()
|
|
60
|
+
compiled_circuit = transpile(qc, simulator)
|
|
61
|
+
result = simulator.run(compiled_circuit, shots=1000).result()
|
|
62
|
+
counts = result.get_counts(compiled_circuit)
|
|
63
|
+
print(counts)
|
|
64
|
+
display(plot_histogram(counts))
|
|
65
|
+
plt.show()'''
|
|
66
|
+
|
|
67
|
+
_P4_CODE = '''from qiskit import QuantumCircuit
|
|
68
|
+
from qiskit_aer import AerSimulator
|
|
69
|
+
|
|
70
|
+
qc = QuantumCircuit(3, 3)
|
|
71
|
+
qc.x(0)
|
|
72
|
+
qc.cx(0, 1)
|
|
73
|
+
qc.swap(1, 2)
|
|
74
|
+
qc.measure([0, 1, 2], [0, 1, 2])
|
|
75
|
+
print(qc.draw())
|
|
76
|
+
|
|
77
|
+
simulator = AerSimulator()
|
|
78
|
+
result = simulator.run(qc, shots=1024).result()
|
|
79
|
+
print(result.get_counts())'''
|
|
80
|
+
|
|
81
|
+
_P5_CODE = '''from qiskit import QuantumCircuit
|
|
82
|
+
from qiskit_aer import AerSimulator
|
|
83
|
+
|
|
84
|
+
def deutsch_jozsa(balanced):
|
|
85
|
+
qc = QuantumCircuit(2, 1)
|
|
86
|
+
qc.x(1)
|
|
87
|
+
qc.h([0, 1])
|
|
88
|
+
if balanced:
|
|
89
|
+
qc.cx(0, 1)
|
|
90
|
+
qc.h(0)
|
|
91
|
+
qc.measure(0, 0)
|
|
92
|
+
simulator = AerSimulator()
|
|
93
|
+
result = simulator.run(qc, shots=1024).result()
|
|
94
|
+
counts = result.get_counts()
|
|
95
|
+
print(counts)
|
|
96
|
+
if '0' in counts:
|
|
97
|
+
print("Function is constant")
|
|
98
|
+
else:
|
|
99
|
+
print("Function is balanced")
|
|
100
|
+
|
|
101
|
+
print("Constant function:")
|
|
102
|
+
deutsch_jozsa(False)
|
|
103
|
+
print("Balanced function:")
|
|
104
|
+
deutsch_jozsa(True)'''
|
|
105
|
+
|
|
106
|
+
_P6_CODE = '''from qiskit import QuantumCircuit
|
|
107
|
+
from qiskit_aer import AerSimulator
|
|
108
|
+
|
|
109
|
+
qc = QuantumCircuit(2, 2)
|
|
110
|
+
qc.h([0, 1])
|
|
111
|
+
# Mark state 11
|
|
112
|
+
qc.cz(0, 1)
|
|
113
|
+
# Diffusion operator
|
|
114
|
+
qc.h([0, 1])
|
|
115
|
+
qc.x([0, 1])
|
|
116
|
+
qc.cz(0, 1)
|
|
117
|
+
qc.x([0, 1])
|
|
118
|
+
qc.h([0, 1])
|
|
119
|
+
qc.measure([0, 1], [0, 1])
|
|
120
|
+
print(qc.draw())
|
|
121
|
+
|
|
122
|
+
simulator = AerSimulator()
|
|
123
|
+
result = simulator.run(qc, shots=1024).result()
|
|
124
|
+
print(result.get_counts())'''
|
|
125
|
+
|
|
126
|
+
PRACTICALS = [
|
|
127
|
+
{
|
|
128
|
+
"num": 1,
|
|
129
|
+
"title": "Create a Single-Qubit Circuit Applying the Hadamard Gate",
|
|
130
|
+
"aim": "To create a single-qubit quantum circuit and apply the Hadamard gate to put the qubit into a state of superposition.",
|
|
131
|
+
"software": "Python 3, Qiskit, Qiskit Aer (AerSimulator), Jupyter Notebook.",
|
|
132
|
+
"theory": (
|
|
133
|
+
"A qubit is the basic unit of quantum information. Unlike a classical bit, which is either 0 or 1, "
|
|
134
|
+
"a qubit can exist in a superposition of both states, written as |psi> = a|0> + b|1>, where |a|^2 + |b|^2 = 1.\n\n"
|
|
135
|
+
"The Hadamard gate (H) is a single-qubit gate that creates superposition. Its matrix is "
|
|
136
|
+
"H = (1/sqrt(2)) [[1, 1], [1, -1]]. When applied to the state |0>, it gives H|0> = (|0> + |1>)/sqrt(2), "
|
|
137
|
+
"an equal superposition of |0> and |1>.\n\n"
|
|
138
|
+
"When such a qubit is measured, it collapses to either 0 or 1. Since both amplitudes are equal, "
|
|
139
|
+
"each outcome occurs with probability (1/sqrt(2))^2 = 50%. Hence repeated measurements give nearly "
|
|
140
|
+
"equal numbers of 0s and 1s."
|
|
141
|
+
),
|
|
142
|
+
"code": _P1_CODE,
|
|
143
|
+
"output": "Counts (1024 shots): {'1': 513, '0': 511}",
|
|
144
|
+
"conclusion": "The Hadamard gate successfully puts a single qubit into an equal superposition state, and measurement gives 0 or 1 with approximately 50% probability each.",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"num": 2,
|
|
148
|
+
"title": "Measure the Qubit and Plot the Histogram of Results",
|
|
149
|
+
"aim": "To measure a qubit prepared in a superposition state and to plot the histogram of the measurement results obtained over many shots.",
|
|
150
|
+
"software": "Python 3, Qiskit, Qiskit Aer (AerSimulator), Matplotlib, Jupyter Notebook.",
|
|
151
|
+
"theory": (
|
|
152
|
+
"A single measurement of a qubit gives only one random outcome, so one shot cannot reveal the quantum state. "
|
|
153
|
+
"The experiment must therefore be repeated many times (shots), and the outcomes counted.\n\n"
|
|
154
|
+
"Here the qubit is first put into superposition with a Hadamard gate and then measured. "
|
|
155
|
+
"Running the circuit for 1024 shots collects the statistics of the measurement.\n\n"
|
|
156
|
+
"A histogram is a bar chart of these counts. For a qubit in equal superposition, the histogram shows two bars "
|
|
157
|
+
"of nearly equal height, one for outcome 0 and one for outcome 1, which visually confirms the 50-50 probability distribution."
|
|
158
|
+
),
|
|
159
|
+
"code": _P2_CODE,
|
|
160
|
+
"output": "Counts (1024 shots): {'1': 533, '0': 491}. The histogram shows two bars of nearly equal height for outcomes '0' and '1'.",
|
|
161
|
+
"conclusion": "The histogram of 1024 measurements shows two nearly equal bars, confirming that the qubit in superposition is measured as 0 or 1 with approximately equal probability.",
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"num": 3,
|
|
165
|
+
"title": "Build a Circuit to Generate a Bell State",
|
|
166
|
+
"aim": "To build a two-qubit quantum circuit that generates a Bell state, a maximally entangled state, using a Hadamard gate and a CNOT gate.",
|
|
167
|
+
"software": "Python 3, Qiskit, Qiskit Aer (AerSimulator), Matplotlib, Jupyter Notebook.",
|
|
168
|
+
"theory": (
|
|
169
|
+
"A Bell state is a maximally entangled state of two qubits. The state produced here is |Phi+> = (|00> + |11>)/sqrt(2). "
|
|
170
|
+
"In this state neither qubit has a definite value of its own; the two qubits are perfectly correlated.\n\n"
|
|
171
|
+
"The circuit applies a Hadamard gate to the first qubit, creating (|0> + |1>)/sqrt(2), and then a CNOT gate with "
|
|
172
|
+
"the first qubit as control and the second as target. The CNOT flips the target only when the control is 1, "
|
|
173
|
+
"which entangles the two qubits and produces the Bell state.\n\n"
|
|
174
|
+
"On measurement, only the outcomes 00 and 11 are observed, each with about 50% probability. "
|
|
175
|
+
"The outcomes 01 and 10 never occur, which proves that the qubits are entangled and not independent."
|
|
176
|
+
),
|
|
177
|
+
"code": _P3_CODE,
|
|
178
|
+
"output": "Counts (1000 shots): {'00': 511, '11': 489}. Outcomes '01' and '10' do not occur. The histogram shows two nearly equal bars for '00' and '11'.",
|
|
179
|
+
"conclusion": "The Bell state |Phi+> was successfully generated. The measurement results show only the correlated outcomes 00 and 11, confirming maximal entanglement between the two qubits.",
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"num": 4,
|
|
183
|
+
"title": "Implement a Multi-Qubit Circuit with CNOT and SWAP Gates",
|
|
184
|
+
"aim": "To implement a three-qubit circuit using X, CNOT and SWAP gates and to verify the final state obtained after these operations.",
|
|
185
|
+
"software": "Python 3, Qiskit, Qiskit Aer (AerSimulator), Jupyter Notebook.",
|
|
186
|
+
"theory": (
|
|
187
|
+
"The CNOT (controlled-NOT) gate is a two-qubit gate: it flips the target qubit only when the control qubit is "
|
|
188
|
+
"in state 1, and leaves it unchanged when the control is 0.\n\n"
|
|
189
|
+
"The SWAP gate is a two-qubit gate that exchanges the states of two qubits. If the qubits are in states |a> and |b>, "
|
|
190
|
+
"after SWAP they are in states |b> and |a>.\n\n"
|
|
191
|
+
"In this circuit the qubits start in state 000. The X gate on qubit 0 makes it 1, the CNOT (control 0, target 1) "
|
|
192
|
+
"then makes qubit 1 also 1, and the SWAP of qubits 1 and 2 moves that 1 to qubit 2. The final state is therefore 101 "
|
|
193
|
+
"(read as qubit 2, qubit 1, qubit 0), and because every gate here is deterministic, all 1024 shots give the same result."
|
|
194
|
+
),
|
|
195
|
+
"code": _P4_CODE,
|
|
196
|
+
"output": "Counts (1024 shots): {'101': 1024}. All 1024 shots give the state 101, as expected.",
|
|
197
|
+
"conclusion": "The CNOT and SWAP operations work as expected: starting from 000, the circuit deterministically produces the state 101, verified by all 1024 measurement shots.",
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"num": 5,
|
|
201
|
+
"title": "Implement and Run the Deutsch-Jozsa Algorithm on a Balanced and Constant Function",
|
|
202
|
+
"aim": "To implement the Deutsch-Jozsa algorithm and to determine, with a single oracle query, whether a given function is constant or balanced.",
|
|
203
|
+
"software": "Python 3, Qiskit, Qiskit Aer (AerSimulator), Jupyter Notebook.",
|
|
204
|
+
"theory": (
|
|
205
|
+
"The Deutsch-Jozsa problem is to decide whether a function f is constant (same output for all inputs) or balanced "
|
|
206
|
+
"(output 0 for exactly half the inputs and 1 for the other half). A classical computer needs up to 2^(n-1) + 1 queries "
|
|
207
|
+
"in the worst case, but the quantum algorithm needs only one query to the oracle.\n\n"
|
|
208
|
+
"The algorithm prepares the input qubit in superposition with a Hadamard gate and the output (ancilla) qubit in the "
|
|
209
|
+
"state (|0> - |1>)/sqrt(2). The oracle applies the function through phase kickback: it flips the phase of the input "
|
|
210
|
+
"state according to f(x), without changing the ancilla.\n\n"
|
|
211
|
+
"A final Hadamard gate on the input qubit causes interference: if f is constant, the phases add up and the input qubit "
|
|
212
|
+
"is measured as 0; if f is balanced, the phases cancel and it is measured as 1. Thus one measurement of the first "
|
|
213
|
+
"qubit decides the nature of the function."
|
|
214
|
+
),
|
|
215
|
+
"code": _P5_CODE,
|
|
216
|
+
"output": "Constant function: {'0': 1024} — Function is constant\nBalanced function: {'1': 1024} — Function is balanced",
|
|
217
|
+
"conclusion": "The Deutsch-Jozsa algorithm correctly identifies the constant function (measurement 0) and the balanced function (measurement 1) with just one oracle query, demonstrating quantum speedup over the classical method.",
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"num": 6,
|
|
221
|
+
"title": "Implement and Run Grover's Algorithm to Search for a Marked State",
|
|
222
|
+
"aim": "To implement Grover's search algorithm on two qubits and to find the marked state |11> from an unstructured set of four states.",
|
|
223
|
+
"software": "Python 3, Qiskit, Qiskit Aer (AerSimulator), Jupyter Notebook.",
|
|
224
|
+
"theory": (
|
|
225
|
+
"Grover's algorithm searches an unstructured database of N items. A classical search needs about N/2 checks on average, "
|
|
226
|
+
"but Grover's algorithm needs only about sqrt(N) steps, giving a quadratic speedup.\n\n"
|
|
227
|
+
"The algorithm starts with all states in equal superposition. The oracle marks the target state by flipping its phase "
|
|
228
|
+
"(here the CZ gate marks |11>). The diffusion operator then performs inversion about the mean, which increases the "
|
|
229
|
+
"amplitude of the marked state and decreases the others.\n\n"
|
|
230
|
+
"For two qubits, N = 4, a single Grover iteration is enough to raise the probability of the marked state |11> to "
|
|
231
|
+
"nearly 100%. Measurement therefore gives |11> on almost all shots."
|
|
232
|
+
),
|
|
233
|
+
"code": _P6_CODE,
|
|
234
|
+
"output": "Counts (1024 shots): {'11': 1024}. All shots give the marked state '11'.",
|
|
235
|
+
"conclusion": "Grover's algorithm successfully finds the marked state |11> with nearly 100% probability in a single iteration, demonstrating the quadratic speedup of quantum search over classical search.",
|
|
236
|
+
},
|
|
237
|
+
]
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
def _print_one(p):
|
|
241
|
+
bar = "=" * 70
|
|
242
|
+
print(bar)
|
|
243
|
+
print(f"Practical {p['num']}: {p['title']}")
|
|
244
|
+
print(bar)
|
|
245
|
+
print(f"\nAim: {p['aim']}")
|
|
246
|
+
print(f"\nSoftware Used: {p['software']}")
|
|
247
|
+
print(f"\nTheory:\n{p['theory']}")
|
|
248
|
+
print(f"\nCode:\n{p['code']}")
|
|
249
|
+
print(f"\nOutput:\n{p['output']}")
|
|
250
|
+
print(f"\nConclusion:\n{p['conclusion']}")
|
|
251
|
+
print()
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
def show(n):
|
|
255
|
+
"""Print practical number n (1-6)."""
|
|
256
|
+
for p in PRACTICALS:
|
|
257
|
+
if p["num"] == n:
|
|
258
|
+
_print_one(p)
|
|
259
|
+
return
|
|
260
|
+
raise ValueError(f"No practical {n}. Available: 1-{len(PRACTICALS)}.")
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
def p1():
|
|
264
|
+
show(1)
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
def p2():
|
|
268
|
+
show(2)
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
def p3():
|
|
272
|
+
show(3)
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
def p4():
|
|
276
|
+
show(4)
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
def p5():
|
|
280
|
+
show(5)
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
def p6():
|
|
284
|
+
show(6)
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
def all():
|
|
288
|
+
"""Print every practical (theory + code)."""
|
|
289
|
+
for p in PRACTICALS:
|
|
290
|
+
_print_one(p)
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
def list():
|
|
294
|
+
"""List all practical titles."""
|
|
295
|
+
for p in PRACTICALS:
|
|
296
|
+
print(f"{p['num']}. {p['title']}")
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
class Qiskitcode:
|
|
300
|
+
"""Class form: Qiskitcode.p1(), Qiskitcode.all(), ..."""
|
|
301
|
+
|
|
302
|
+
p1 = staticmethod(p1)
|
|
303
|
+
p2 = staticmethod(p2)
|
|
304
|
+
p3 = staticmethod(p3)
|
|
305
|
+
p4 = staticmethod(p4)
|
|
306
|
+
p5 = staticmethod(p5)
|
|
307
|
+
p6 = staticmethod(p6)
|
|
308
|
+
all = staticmethod(all)
|
|
309
|
+
show = staticmethod(show)
|
|
310
|
+
list = staticmethod(list)
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
__all__ = [
|
|
314
|
+
"PRACTICALS",
|
|
315
|
+
"Qiskitcode",
|
|
316
|
+
"p1",
|
|
317
|
+
"p2",
|
|
318
|
+
"p3",
|
|
319
|
+
"p4",
|
|
320
|
+
"p5",
|
|
321
|
+
"p6",
|
|
322
|
+
"all",
|
|
323
|
+
"show",
|
|
324
|
+
"list",
|
|
325
|
+
"__version__",
|
|
326
|
+
]
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: qiskitcode
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Quantum Lab Practicals: print theory + Qiskit code for all practicals on the terminal
|
|
5
|
+
Author: HAFIZ
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.9
|
|
8
|
+
Description-Content-Type: text/markdown
|
|
9
|
+
|
|
10
|
+
# qiskitcode
|
|
11
|
+
|
|
12
|
+
Quantum Lab Practicals — theory + Qiskit code, printed straight on the terminal.
|
|
13
|
+
|
|
14
|
+
## Install
|
|
15
|
+
|
|
16
|
+
From this folder:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pip install .
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Or install the built wheel from `dist/`:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pip install dist/qiskitcode-0.1.0-py3-none-any.whl
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
(No Qiskit install needed just to *print* the practicals — Qiskit is only
|
|
29
|
+
needed if you actually *run* the printed code.)
|
|
30
|
+
|
|
31
|
+
## Use
|
|
32
|
+
|
|
33
|
+
```python
|
|
34
|
+
import qiskitcode
|
|
35
|
+
|
|
36
|
+
qiskitcode.p1() # Practical 1: Hadamard / superposition
|
|
37
|
+
qiskitcode.p2() # Practical 2: Measure + histogram
|
|
38
|
+
qiskitcode.p3() # Practical 3: Bell state
|
|
39
|
+
qiskitcode.p4() # Practical 4: CNOT + SWAP
|
|
40
|
+
qiskitcode.p5() # Practical 5: Deutsch-Jozsa
|
|
41
|
+
qiskitcode.p6() # Practical 6: Grover's search
|
|
42
|
+
qiskitcode.all() # all six, one after another
|
|
43
|
+
qiskitcode.show(3) # any practical by number
|
|
44
|
+
qiskitcode.list() # list all titles
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The class form also works:
|
|
48
|
+
|
|
49
|
+
```python
|
|
50
|
+
from qiskitcode import Qiskitcode
|
|
51
|
+
Qiskitcode.p1()
|
|
52
|
+
Qiskitcode.all()
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Note: `qiskitcode.1()` is not valid Python — an attribute name cannot start
|
|
56
|
+
with a digit — so the numbered practicals are `p1()` … `p6()`.
|
|
57
|
+
|
|
58
|
+
## Contents
|
|
59
|
+
|
|
60
|
+
1. Create a Single-Qubit Circuit Applying the Hadamard Gate
|
|
61
|
+
2. Measure the Qubit and Plot the Histogram of Results
|
|
62
|
+
3. Build a Circuit to Generate a Bell State
|
|
63
|
+
4. Implement a Multi-Qubit Circuit with CNOT and SWAP Gates
|
|
64
|
+
5. Implement and Run the Deutsch-Jozsa Algorithm
|
|
65
|
+
6. Implement and Run Grover's Algorithm to Search for a Marked State
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
qiskitcode/__init__.py,sha256=vEDhiIyyIoj2OSl4kvepDsqSAXxW4d-WrprAkFFKy6Q,13730
|
|
2
|
+
qiskitcode-0.1.0.dist-info/METADATA,sha256=7TheH1PrCpHuf6fLYtVHEj71D2CIK2meiVZV_XOJfOw,1707
|
|
3
|
+
qiskitcode-0.1.0.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
|
|
4
|
+
qiskitcode-0.1.0.dist-info/top_level.txt,sha256=sYbo9w79ZueXIFtYNw9gEZA9rzn6Ip3N_CF-P3lwKEI,11
|
|
5
|
+
qiskitcode-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
qiskitcode
|