Skip to content

Commit a088de0

Browse files
authored
assignment turn in
1 parent e605fb5 commit a088de0

File tree

1 file changed

+180
-9
lines changed

1 file changed

+180
-9
lines changed

Assignments/EN/Assignment_6.ipynb

+180-9
Original file line numberDiff line numberDiff line change
@@ -39,29 +39,200 @@
3939
},
4040
{
4141
"cell_type": "code",
42-
"execution_count": null,
42+
"execution_count": 9,
4343
"metadata": {},
4444
"outputs": [],
4545
"source": [
46-
"# a)"
46+
"# a)\n",
47+
"\n",
48+
"import numpy as np\n",
49+
"\n",
50+
"def biased_dice():\n",
51+
" probabilities = np.arange(1, 9)\n",
52+
" probabilities = probabilities / probabilities.sum()\n",
53+
" while True:\n",
54+
" yield np.random.choice(8, p=probabilities) + 1"
4755
]
4856
},
4957
{
5058
"cell_type": "code",
51-
"execution_count": null,
59+
"execution_count": 10,
5260
"metadata": {},
53-
"outputs": [],
61+
"outputs": [
62+
{
63+
"data": {
64+
"image/png": "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jPnYfX1z4cIF3X777Xrsscf0wAMP2D2O323btk3jx49X7969dfnyZU2fPl1Dhw7V559/rtDQULvH84ubb75Zv/vd79S+fXtJ0vLly3Xffffps88+U9euXW2ezr/S09O1aNEi9ejRw+5R/Kpr167auHGjd79x48Y2TuN/BQUFuvPOOzVw4ED97W9/U2RkpL788sta/db9upSenq6Kigrv/uHDhzVkyBA9+OCDNk7lP7///e/19ttva/ny5eratav279+vxx57TC6XS5MmTbJ7vIBDENkkISFBCQkJdo9Ra9LS0nz2ly5dqsjISGVkZOiee+6xaSr/Gj58uM/+zJkztXDhQu3Zsyeggqi4uFhjxozR4sWL9dprr9k9jl8FBQUF5KtCV/z+97+X2+3W0qVLvcfatWtn30B+1qpVK5/93/3ud7r11lvVv39/mybyr927d+u+++7TL3/5S0nf/bt77733tH//fpsnC0y8ZYY64fF4JEnh4eE2T1I7KioqtGbNGl24cEFxcXF2j+NX48eP1y9/+UsNHjzY7lH87tixY4qJiVFsbKwefvhhnThxwu6R/Oqjjz5Sr1699OCDDyoyMlJ33HGHFi9ebPdYtaK8vFwrV67U448/7tdfwG2nu+66S5s2bdIXX3whSfrHP/6hnTt36t5777V5ssDEK0SodZZlafLkybrrrrvUrVs3u8fxq0OHDikuLk6lpaX6yU9+orVr16pLly52j+U3a9as0YEDB5Senm73KH7Xp08fvfvuu7rtttt05swZvfbaa+rXr5+OHDmiiIgIu8fzixMnTmjhwoWaPHmyXnzxRe3bt08TJ06U0+nUf/3Xf9k9nl+tW7dO58+f19ixY+0exW+ef/55eTwederUSY0bN1ZFRYVmzpypRx55xO7RAhJBhFr3zDPP6ODBg9q5c6fdo/hdx44dlZmZqfPnz+vPf/6zkpOTtW3btoCIopycHE2aNEnr169X06ZN7R7H777/lnX37t0VFxenW2+9VcuXL9fkyZNtnMx/Kisr1atXL82aNUuSdMcdd+jIkSNauHBhwAXRkiVLlJCQoJiYGLtH8Zv3339fK1eu1OrVq9W1a1dlZmYqJSVFMTExSk5Otnu8gEMQoVZNmDBBH330kbZv366bb77Z7nH8rkmTJt6bqnv16qX09HT94Q9/0DvvvGPzZDcuIyNDeXl5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\n",
65+
"text/plain": [
66+
"<Figure size 640x480 with 1 Axes>"
67+
]
68+
},
69+
"metadata": {},
70+
"output_type": "display_data"
71+
}
72+
],
5473
"source": [
55-
"# b)"
74+
"# b)\n",
75+
"\n",
76+
"import matplotlib.pyplot as plt\n",
77+
"\n",
78+
"probabilities = np.arange(1, 9)\n",
79+
"probabilities = probabilities / probabilities.sum()\n",
80+
"\n",
81+
"results = np.random.choice(8, size=10000, p=probabilities) + 1\n",
82+
"\n",
83+
"plt.hist(results, bins=np.arange(1, 10), density=False, edgecolor='black')\n",
84+
"plt.xticks(np.arange(1, 9))\n",
85+
"plt.xlabel('Face value')\n",
86+
"plt.ylabel('Count')\n",
87+
"plt.show()"
5688
]
5789
},
5890
{
5991
"cell_type": "code",
60-
"execution_count": null,
92+
"execution_count": 11,
6193
"metadata": {},
62-
"outputs": [],
94+
"outputs": [
95+
{
96+
"name": "stdout",
97+
"output_type": "stream",
98+
"text": [
99+
"3\n",
100+
"6\n",
101+
"8\n",
102+
"7\n",
103+
"7\n",
104+
"6\n",
105+
"8\n",
106+
"7\n",
107+
"5\n",
108+
"7\n",
109+
"6\n",
110+
"5\n",
111+
"6\n",
112+
"5\n",
113+
"3\n",
114+
"7\n",
115+
"6\n",
116+
"6\n",
117+
"4\n",
118+
"7\n",
119+
"7\n",
120+
"2\n",
121+
"7\n",
122+
"8\n",
123+
"2\n",
124+
"8\n",
125+
"8\n",
126+
"4\n",
127+
"3\n",
128+
"8\n",
129+
"2\n",
130+
"8\n",
131+
"7\n",
132+
"6\n",
133+
"6\n",
134+
"8\n",
135+
"7\n",
136+
"5\n",
137+
"5\n",
138+
"4\n",
139+
"4\n",
140+
"6\n",
141+
"2\n",
142+
"4\n",
143+
"7\n",
144+
"6\n",
145+
"4\n",
146+
"5\n",
147+
"2\n",
148+
"8\n",
149+
"4\n",
150+
"7\n",
151+
"7\n",
152+
"8\n",
153+
"8\n",
154+
"8\n",
155+
"6\n",
156+
"6\n",
157+
"4\n",
158+
"2\n",
159+
"3\n",
160+
"5\n",
161+
"6\n",
162+
"3\n",
163+
"4\n",
164+
"6\n",
165+
"3\n",
166+
"8\n",
167+
"8\n",
168+
"4\n",
169+
"8\n",
170+
"6\n",
171+
"4\n",
172+
"8\n",
173+
"8\n",
174+
"8\n",
175+
"7\n",
176+
"4\n",
177+
"5\n",
178+
"8\n",
179+
"5\n",
180+
"7\n",
181+
"5\n",
182+
"5\n",
183+
"6\n",
184+
"8\n",
185+
"5\n",
186+
"5\n",
187+
"5\n",
188+
"5\n",
189+
"6\n",
190+
"2\n",
191+
"7\n",
192+
"8\n",
193+
"8\n",
194+
"8\n",
195+
"6\n",
196+
"8\n",
197+
"2\n",
198+
"5\n",
199+
"8\n",
200+
"8\n",
201+
"8\n",
202+
"8\n",
203+
"7\n",
204+
"5\n",
205+
"7\n",
206+
"6\n",
207+
"6\n",
208+
"8\n",
209+
"7\n",
210+
"7\n",
211+
"1\n",
212+
"0.003526999999991176\n"
213+
]
214+
}
215+
],
63216
"source": [
64-
"# c)"
217+
"# c)\n",
218+
"\n",
219+
"import numpy as np\n",
220+
"import time\n",
221+
"\n",
222+
"def modded_biased_dice():\n",
223+
" probabilities = np.arange(1, 9)\n",
224+
" probabilities = probabilities / probabilities.sum()\n",
225+
" rolls = set()\n",
226+
" start_time = time.monotonic()\n",
227+
" while len(rolls) < 8:\n",
228+
" roll = np.random.choice(8, p=probabilities) + 1\n",
229+
" rolls.add(roll)\n",
230+
" yield roll\n",
231+
" yield time.monotonic() - start_time\n",
232+
"\n",
233+
"results = modded_biased_dice()\n",
234+
"for result in results:\n",
235+
" print(result)"
65236
]
66237
},
67238
{
@@ -124,7 +295,7 @@
124295
"name": "python",
125296
"nbconvert_exporter": "python",
126297
"pygments_lexer": "ipython3",
127-
"version": "3.10.6"
298+
"version": "3.9.13"
128299
}
129300
},
130301
"nbformat": 4,

0 commit comments

Comments
 (0)