diff --git a/new.ipynb b/new.ipynb new file mode 100644 index 0000000..33aa6c2 --- /dev/null +++ b/new.ipynb @@ -0,0 +1,384 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0a11e40c", + "metadata": {}, + "source": [ + "### Задача 1" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "0ec1f0ef", + "metadata": {}, + "outputs": [], + "source": [ + "# Список\n", + "new_list = [100, 80, 75, 77, 89, 33, 45, 25, 65, 17, 30, 230, 24, 57, 55, 70, 75, 65, 84, 90, 150]\n", + "\n", + "def sum_list(list):\n", + " \"\"\"Суммирование всех элементов списка\"\"\"\n", + " n_sum = 0\n", + " for i in list:\n", + " n_sum += i\n", + " return n_sum" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "ad23c3f3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Ответ: 47.34795213553139\n" + ] + } + ], + "source": [ + "def get_dis(list):\n", + " \"\"\" Нахождение результата по формуле квадратичного отклонения \"\"\"\n", + " d_sum = 0\n", + " result = 0\n", + " # Нахождение среднего значения списка\n", + " list_aver = sum_list(list) / len(list)\n", + " for i in list:\n", + " d_sum += (i - list_aver)**2\n", + " # Результат - корень из полученного значения \n", + " return (d_sum / (len(list) - 1))**0.5\n", + " \n", + "answ = get_dis(new_list)\n", + "print(\"Ответ: \", answ)" + ] + }, + { + "cell_type": "markdown", + "id": "d332c51e", + "metadata": {}, + "source": [ + "### Задача 2" + ] + }, + { + "cell_type": "markdown", + "id": "41a15c9d", + "metadata": {}, + "source": [ + "Задача 2\n", + "Найдите число выбросов в выборке из задачи 1. Для определения выбросов используйте методику как при построении “усов” в boxplot, однако, как и в задаче 1, пользоваться можно только встроенными функциями и структурами данных.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "27ee281e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[17, 24, 25, 30, 33, 45, 55, 57, 65, 65, 70, 75, 75, 77, 80, 84, 89, 90, 100, 150, 230]\n" + ] + } + ], + "source": [ + "# Для начала упорядочим список по возрастанию\n", + "def sort_list(list):\n", + " i = 0\n", + " a = 0\n", + " while i < (len(list) - 1):\n", + " if list[i+1] < list[i]:\n", + " a = list[i]\n", + " list[i] = list[i+1]\n", + " list[i+1] = a\n", + " i = 0\n", + " else:\n", + " i += 1\n", + " return list\n", + "sorted_list = sort_list(new_list)\n", + "print([elem for elem in sorted_list]) " + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "306e95a5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(70, 45, 84)" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Вычислим медиану\n", + "list_m = sorted_list[len(sorted_list) // 2]\n", + "\n", + "# Вычислим нижний квантиль\n", + "def get_q1(list):\n", + " list_q1 = [elem for elem in list if elem < list[len(list) // 2]]\n", + " i = len(list_q1) // 2\n", + " result = list_q1[i] \n", + " return result\n", + "\n", + "# Вычислим верхний квантиль\n", + "def get_q3(list):\n", + " list_q3 = [elem for elem in list if elem > list[len(list) // 2]]\n", + " i = len(list_q3) // 2\n", + " result = list_q3[i-1]\n", + " return result\n", + "\n", + "list_q1 = get_q1(sorted_list)\n", + "list_q3 = get_q3(sorted_list)\n", + "list_m, list_q1, list_q3" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "7d709283", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(58.5, -26.25, 155.25)" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Вычислим межквантильный диапазон\n", + "q_d = 1.5 * (list_q3 - list_q1)\n", + "\n", + "# Найдем внутренние границы значений\n", + "x1 = list_q1 - q_n\n", + "x2 = list_q3 + q_n\n", + "\n", + "q_d, x1, x2" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "42faac62", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([230], 1)" + ] + }, + "execution_count": 91, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Выведем элементы, которые не входят во внутренние границы и количество\n", + "main_res = [elem for elem in new_list if (elem <= x1) or (elem >= x2)]\n", + "main_res, len(main_res)" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "6e5e8bad", + "metadata": {}, + "outputs": [], + "source": [ + "# Ответ не совпал, выполню проверку" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "id": "81063bf8", + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "978fb76a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(70.0, 45.0, 84.0)" + ] + }, + "execution_count": 88, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.quantile(sorted_list, 0.5), np.quantile(sorted_list, 0.25), np.quantile(sorted_list, 0.75)" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "id": "d20c8300", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.boxplot(sorted_list)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "id": "59c9ff7d", + "metadata": {}, + "outputs": [], + "source": [ + "# BoxPlot показывает два выброса, у меня получился один, значение 150 почему-то\n", + "# не захвачено, жду проверки :)" + ] + }, + { + "cell_type": "markdown", + "id": "03516c35", + "metadata": {}, + "source": [ + "### Задача 3" + ] + }, + { + "cell_type": "markdown", + "id": "4c549a57", + "metadata": {}, + "source": [ + "В университет на факультет A поступило 100 человек, на факультет B - 90 человек и на факультет C - 45 человек. Вероятность того, что студент с факультета A сдаст первую сессию, равна 0.6. Для студента с факультета B эта вероятность равна 0.7, а для студента с факультета C - 0.8. Случайным образом выбирается студент, сдавший первую сессию. Какое событие наиболее вероятно:\n", + "\n", + "студент учится на факультете A,\n", + "студент учится на факультете B,\n", + "студент учится на факультете C?" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "71f5cce9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.425531914893617 0.3829787234042553 0.19148936170212766\n" + ] + } + ], + "source": [ + "# Вероятности для каждого факультета\n", + "A1 = 0.6\n", + "A2 = 0.7\n", + "A3 = 0.8\n", + "\n", + "# количество учащихся в каждом факультете\n", + "A_n = 100\n", + "B_n = 90\n", + "C_n = 45\n", + "\n", + "# общее количество учащихся\n", + "N = 100 + 90 + 45\n", + "\n", + "# Вероятности для каждого факультета, что случайно выбранный студент именно с него\n", + "Xn_A = A_n / N\n", + "Xn_B = B_n / N\n", + "Xn_C = C_n / N\n", + "print(Xn_A, Xn_B, Xn_C)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "057c3c29", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "25.53 26.81 15.32\n" + ] + } + ], + "source": [ + "# Так как наши вероятности зависимы, найдем искомую вероятность, перемножив их друг \n", + "# на друга\n", + "P_a = round((Xn_A * A1) * 100, 2)\n", + "P_b = round((Xn_B * A2) * 100, 2)\n", + "P_c = round((Xn_C * A3) * 100, 2)\n", + "print(P_a, P_b, P_c)" + ] + }, + { + "cell_type": "markdown", + "id": "345e6c71", + "metadata": {}, + "source": [ + "#### Наиболее вероятно событие №2" + ] + } + ], + "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.8.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}