Skip to content
85 changes: 85 additions & 0 deletions HM_Task_1/HM_Task_1.ipynb

Large diffs are not rendered by default.

Binary file added HM_Task_1/P(3).jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added HM_Task_1/P1,2(1).jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added HM_Task_1/P2(2).jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
486 changes: 486 additions & 0 deletions HM_Task_2-3/HM_Task_2.ipynb

Large diffs are not rendered by default.

677 changes: 677 additions & 0 deletions HM_Task_2-3/HM_Task_3.ipynb

Large diffs are not rendered by default.

555 changes: 555 additions & 0 deletions HM_Task_4 + bonus/HM_Task_4.ipynb

Large diffs are not rendered by default.

878 changes: 878 additions & 0 deletions HM_Task_4 + bonus/Решение задачи Бюффона.ipynb

Large diffs are not rendered by default.

785 changes: 785 additions & 0 deletions HM_Task_5/HM_Task_5.ipynb

Large diffs are not rendered by default.

223 changes: 223 additions & 0 deletions HM_Task_6 + bonus/HM_Task_6.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ВВЕДЕНИЕ В ВЫСШУЮ МАТЕМАТИКУ\n",
"****************"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Практическое задание к `Уроку 6`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 1.\tЗадание (теорема сложения)\n",
"\n",
"Найти вероятность выпадения 2 или 5 очков при подбрасывании игральной кости, на гранях которой имеются соответственно 1,2,3,4,5 и 6 очков."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`Ответ:` \n",
"\n",
"$ \\sum_{i=1}^m P(A_{i}) = 1 $\n",
"\n",
"$ P(2) + P(5) = \\frac{1}{6} + \\frac{1}{6} = \\frac{2}{6}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 2.\tЗадание (теорема умножения)\n",
"Найти вероятность того, что при двух подбрасываниях той же самой игральной кости сначала выпадет 2, а затем 5."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`Ответ:`\n",
"\n",
"$ P(2) \\cdot P(5) = \\frac{1}{6} \\cdot \\frac{1}{6} = \\frac{1}{36} = 0.0278$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 3.\tЗадание \n",
"Найти вероятность выпадения 2 и 5 очков при двух подбрасываниях той же самой игральной игральной кости."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`Ответ:`\n",
"\n",
"$ P(2) + P(5) \\cdot P(2|5) = \\frac{1}{6} + \\frac{1}{6} \\cdot \\frac{1}{6} = \\frac{1}{18} = 0.055$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4.\tЗадание (Геометрическая вероятность +интервалы)\n",
"На отрезке AB длиной 20 см наугад отметили точку C. Какова вероятность, что она находится на расстоянии не более 9 см от точки А и не более 15 см от точки В?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`Ответ:` \n",
"\n",
"При выполнения условий отдаленности точка С должна попасть в отрезок длиной $9-(20-15) = 4 $ см\n",
"\n",
"Вероятность составит $\\frac{4}{20}=0.2$ "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 5.\tЗадание. \n",
"Телефонный номер состоит из 7 цифр. Какова вероятность, что это номер 8882227?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`Ответ:`\n",
"\n",
"$P(8) \\cdot P(8) \\cdot P(8) \\cdot P(2) \\cdot P(2) \\cdot P(2) \\cdot P(7) = \\frac{1}{10} \\cdot \\frac{1}{10} \\cdot \\frac{1}{10} \\cdot \\frac{1}{10} \\cdot \\frac{1}{10} \\cdot \\frac{1}{10} \\cdot \\frac{1}{10} \\cdot = \\frac{1}{10^7} = 1^{-7}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 6.\tЗадание. \n",
"Набирая номер телефона, абонент забыл 2 последние цифры, и, помня только то, что эти цифры различны и среди них нет нуля, стал набирать их наудачу. Сколько вариантов ему надо перебрать, чтобы наверняка найти нужный номер? Какова вероятность того, что он угадает номер с первого раза?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`Ответ:`\n",
"\n",
"Количество вариантов: $9^2-9=72$\n",
"\n",
"Вероятность угадать номер с первого раза: \n",
"$\\frac{1}{72} = 0.0139$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 7.\tЗадание** (необязательное) \n",
"Чёрный куб покрасили снаружи белой краской, затем разрезали на 27 одинаковых маленьких кубиков и как попало сложили из них большой куб. С какой вероятностью все грани этого куба будут белыми?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`Ответ:`\n",
"\n",
"Можно выделить 4 группы частей куба:\n",
"- 6 центральных кубиков с 1 белой гранью:\n",
"- 1 центральный куб без белых граней:\n",
"- 12 частей от центральных ребер куба с 2 белыми гранями\n",
"- 8 частей от вершин куба куба с 3 белыми гранями"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1.8298051356415021e-37"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from math import factorial as f\n",
"\n",
"# Количество кубиков для каждой группы\n",
"n_cubes = 27\n",
"n_center = 6\n",
"n_core = 1\n",
"n_ribs = 12\n",
"n_vertex = 8\n",
"\n",
"# Количество вариантов расположений граней при вращении кубика\n",
"s_center = 4\n",
"s_core = 24\n",
"s_ribs = 2\n",
"s_vertex = 3\n",
"\n",
"rot = 6*4 # 24 варианта позиционирования граней в пространстве\n",
"\n",
"# Количество подходящих вариантов\n",
"core = f(n_core) * s_core**n_core\n",
"ribs = f(n_ribs) * s_ribs**n_ribs\n",
"center = f(n_center) * s_center**n_center\n",
"vertex = f(n_vertex) * s_vertex**n_vertex\n",
"\n",
"# Итоговая вероятность \n",
"P = (core * ribs * center * vertex) / (f(n_cubes) * rot**n_cubes)\n",
"P"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
148 changes: 148 additions & 0 deletions HM_Task_6 + bonus/Парадокс Монти-Холла.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Решение задачи с парадоксом Монти-Холла"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" - Американская телеигра «Let’s Make a Deal» предлагает участникам выбрать одну из трёх дверей: \n",
" - За одной из дверей находится (равновероятно) автомобиль, за двумя другими дверями — козы. \n",
" - Вы выбираете одну из дверей, например, номер 1, после этого ведущий, который знает, где находится автомобиль, а где — козы, открывает одну из оставшихся дверей, например, номер 3, за которой находится коза. После этого он спрашивает вас — не желаете ли вы изменить свой выбор и выбрать дверь номер 2? \n",
" - Увеличатся ли ваши шансы выиграть автомобиль, если вы примете предложение ведущего и измените свой выбор?\n",
" - А если вы будете подбрасывать монету, и, если выпадет орел - менять выбор, а если решка - нет?"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [],
"source": [
"N = 1000 # number of repeats \n",
"\n",
"# Game model:\n",
"def not_change_mind(N):\n",
" game_counter = 0\n",
" wins = 0\n",
" \n",
" for i in range(N):\n",
" game_counter += 1 \n",
" r_guess = np.random.randint(1,4) # guess\n",
" t_answer = np.random.randint(1,4) # win case\n",
" if r_guess == t_answer:\n",
" wins += 1\n",
" return wins, game_counter\n",
"\n",
"def change_mind(N):\n",
" game_counter = 0\n",
" wins = 0\n",
" \n",
" for i in range(N):\n",
" game_counter += 1\n",
" f = [1,2,3]\n",
" flags = [] \n",
" r_guess = np.random.randint(1,4) # guess\n",
" t_answer = np.random.randint(1,4) # win case\n",
" flags.append(r_guess)\n",
" f.remove(r_guess)\n",
" if f[0] == t_answer:\n",
" flags.append(f[0])\n",
" elif f[1] == t_answer:\n",
" flags.append(f[1])\n",
" else:\n",
" flags.append(f[0])\n",
"\n",
" # Change initial choice \n",
" if flags[0] == r_guess:\n",
" final_guess = flags[1]\n",
" else:\n",
" final_guess = flags[0]\n",
" if final_guess == t_answer:\n",
" wins += 1\n",
" return wins, game_counter\n",
"\n",
"def chance_change_mind(N):\n",
" game_counter = 0\n",
" wins = 0\n",
" \n",
" for i in range(N):\n",
" game_counter += 1\n",
" f = [1,2,3]\n",
" flags = [] \n",
" r_guess = np.random.randint(1,4) # guess\n",
" t_answer = np.random.randint(1,4) # win case\n",
" flags.append(r_guess)\n",
" f.remove(r_guess)\n",
" if f[0] == t_answer: \n",
" flags.append(f[0])\n",
" elif f[1] == t_answer:\n",
" flags.append(f[1])\n",
" else:\n",
" flags.append(f[0])\n",
" \n",
" # throw coin\n",
" coin = np.random.randint(0,2)\n",
" if coin == 1 and r_guess == flags[0]:\n",
" final_guess = flags[1]\n",
" elif coin == 1 and r_guess == flags[1]:\n",
" final_guess = flags[0]\n",
" elif coin == 0 and r_guess == flags[0]:\n",
" final_guess = flags[0]\n",
" elif coin == 0 and r_guess == flags[1]:\n",
" final_guess = flags[1]\n",
" if final_guess == t_answer:\n",
" wins += 1\n",
" # print(f'coin {coin} guess {r_guess} final_guess {final_guess} t_answer {t_answer}')\n",
" return wins, game_counter"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"without changing(316, 1000)\n",
"with changing (661, 1000)\n",
"coin toggle change (503, 1000)\n"
]
}
],
"source": [
"print(f'without changing{not_change_mind(N)}')\n",
"print(f'with changing {change_mind(N)}')\n",
"print(f'coin toggle change {chance_change_mind(N)}')"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading