Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quantum-kittens
GitHub Repository: quantum-kittens/platypus
Path: blob/main/notebooks/intro/hello_qiskit.py
3855 views
1
import hello_quantum
2
3
exercises = [
4
{
5
'initialize': [],
6
'success_condition': {},
7
'allowed_gates': {'0': {'x': 3}, '1': {}, 'both': {}},
8
'vi': [[1], True, False],
9
'mode': 'line',
10
'qubit_names': {'0':'q[0]', '1':'q[1]'}
11
},
12
{
13
'initialize': [['h','0']],
14
'success_condition': {},
15
'allowed_gates': {'0': {'h': 3}, '1': {}, 'both': {}},
16
'vi': [[1], True, False],
17
'mode': 'line',
18
'qubit_names': {'0':'q[0]', '1':'q[1]'}
19
},
20
{
21
'initialize': [['x','0'],['h','0']],
22
'success_condition': {},
23
'allowed_gates': {'0': {'ry(pi/4)': 4}, '1': {}, 'both': {}},
24
'vi': [[1], True, False],
25
'mode': 'line',
26
'qubit_names': {'0':'q[0]', '1':'q[1]'}
27
},
28
{
29
'initialize': [['x','0'],['h','0']],
30
'success_condition': {},
31
'allowed_gates': {'0': {'bloch':0, 'ry(pi/4)': 4}, '1': {}, 'both': {}},
32
'vi': [[1], True, False],
33
'mode': 'line',
34
'qubit_names': {'0':'q[0]', '1':'q[1]'}
35
},
36
{
37
'initialize': [['x','0'],['h','0']],
38
'success_condition': {},
39
'allowed_gates': {'1': {'bloch':0,'x':2,'h':2,'ry(pi/4)': 2}, '0': {}, 'both': {}},
40
'vi': [[0], True, False],
41
'mode': 'line',
42
'qubit_names': {'0':'q[0]', '1':'q[1]'}
43
},
44
{
45
'initialize': [['x','0']],
46
'success_condition': {'XX':1},
47
'allowed_gates': {'0': {'bloch':0,'x':0,'h':0,'ry(pi/4)': 0}, '1': {'bloch':0,'x':0,'h':0,'ry(pi/4)': 0}, 'both': {}},
48
'vi': [[], True, True],
49
'mode': 'line',
50
'qubit_names': {'0':'q[0]', '1':'q[1]'}
51
},
52
{
53
'initialize': [['ry(-pi/4)','1']],
54
'success_condition': {},
55
'allowed_gates': {'0': {'x': 3}, '1': {}, 'both': {}},
56
'vi': [[], True, True],
57
'mode': 'line',
58
'qubit_names': {'0':'q[0]', '1':'q[1]'}
59
},
60
{
61
'initialize': [['ry(-pi/4)','1']],
62
'success_condition': {},
63
'allowed_gates': {'0': {'h': 3}, '1': {}, 'both': {}},
64
'vi': [[], True, True],
65
'mode': 'line',
66
'qubit_names': {'0':'q[0]', '1':'q[1]'}
67
},
68
{
69
'initialize': [],
70
'success_condition': {'ZI':-1, 'IZ':-1},
71
'allowed_gates': {'0': {'bloch':0,'ry(pi/4)': 0}, '1': {'bloch':0,'ry(pi/4)': 0}, 'both': {}},
72
'vi': [[], True, True],
73
'mode': 'line',
74
'qubit_names': {'0':'q[0]', '1':'q[1]'}
75
},
76
{
77
'initialize': [['h','0'],['h','1']],
78
'success_condition': {},
79
'allowed_gates': {'0': {}, '1': {}, 'both': {'cz':3}},
80
'vi': [[], True, True],
81
'mode': 'line',
82
'qubit_names': {'0':'q[0]', '1':'q[1]'}
83
},
84
{
85
'initialize': [['h','0'],['h','1']],
86
'success_condition': {},
87
'allowed_gates': {'0': {}, '1': {}, 'both': {'cz':3}},
88
'vi': [[], True, True],
89
'mode': 'y',
90
'qubit_names': {'0':'q[0]', '1':'q[1]'}
91
},
92
{
93
'initialize': [],
94
'success_condition': {'ZZ':2},
95
'allowed_gates': {'0': {'bloch':0, 'x':0, 'h':0, 'cz':0, 'ry(pi/4)': 0}, '1': {'bloch':0, 'x':0, 'h':0, 'cz':0, 'ry(pi/4)': 0}, 'both': {'cz':0}},
96
'vi': [[], True, True],
97
'mode': 'line',
98
'qubit_names': {'0':'q[0]', '1':'q[1]'}
99
},
100
{
101
'initialize': [],
102
'success_condition': {'ZZ':+0.7071,'ZX':+0.7071,'XZ':+0.7071,'XX':-0.7071},
103
'allowed_gates': {'0': {'bloch':0, 'x':0, 'h':0, 'cz':0, 'ry(pi/4)': 0}, '1': {'bloch':0, 'x':0, 'h':0, 'cz':0, 'ry(pi/4)': 0}, 'both': {'cz':0}},
104
'vi': [[], True, True],
105
'mode': 'line',
106
'qubit_names': {'0':'A', '1':'B'}
107
}
108
]
109
110
111
def run_puzzle(j):
112
puzzle = hello_quantum.run_game(exercises[j]['initialize'],
113
exercises[j]['success_condition'],
114
exercises[j]['allowed_gates'],
115
exercises[j]['vi'],
116
qubit_names=exercises[j]['qubit_names'],
117
mode=exercises[j]['mode']
118
)
119
return puzzle
120