Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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