Четвертое лекционное задание
Выполнила Бараева Елизавета гр. 2383
Формулы:
Формула для расчета среднего квадратичного отклонения
Формула для расчета математического ожидания
Формула для расчета дисперсии
Формула для расчета теоретического среднего квадратичного отклонения
Задание 1
Была написана функция, которая возвращает случайное число (0 или 1) с заданной вероятностью нуля.
def generator(probability_0): if probability_0 < 0 or probability_0 > 1: raise Exception("Wrong probability") random_value = random.random() if random_value <= probability_0: return 0 elif random_value <= 1: return 1
Задание 2
A_B = [] # массив для сохранения пар (строка, столбец) for _ in range(100): A_B.append((generator(0.5), generator(0.5))) # заполнение массива парами money_A = [] # массив для подсчета монет игрока А for i in range(100): if A_B[i][0] == A_B[i][1]: money_A.append(2) elif A_B[i][0] == 1 and A_B[i][1] == 0: money_A.append(-1) elif A_B[i][0] == 0 and A_B[i][1] == 1: money_A.append(-3) average = sum(money_A)/100 # среднее значение игры print("Выигрыш\проигрыш игрока А:", sum(money_A), "\nСреднее значение:", average) mat_exp_win = 2 * 0.25 + 2 * 0.25 # мат ожидание выигрыша mat_exp_lose = - 3 * 0.25 - 1 * 0.25 # мат ожидание проигрыша print("Мат. ожидание выигрыша:", mat_exp_win) print("Мат. ожидание проигрыша:", mat_exp_lose) msd = 0 # инициализация СКО for i in range(100): msd += (money_A[i] - average) ** 2 # расчёт СКО msd = msd / 100 # расчёт СКО print("СКО:", msd) dispersion = 2 ** 2 * 0.25 + 2 ** 2 * 0.25 + (-1) ** 2 * 0.25 + (-3) ** 2 * 0.25 - (2 * 0.25 + 2 * 0.25 + -1 * 0.25 + -3 * 0.25) ** 2 # расчёт дисперсии theoretical_msd = dispersion ** 0.5 # расчёт теоретического СКО print("Дисперсия:", dispersion) print("Теоретическое СКО:", theoretical_msd)
Результат:
Выигрыш\проигрыш игрока А: 15
Среднее значение: 0.15
Мат. ожидание выигрыша: 1.0
Мат. ожидание проигрыша: -1.0
СКО: 4.327500000000006
Дисперсия: 4.5
Теоретическое СКО: 2.1213203435596424
Задание 3
A_B = [] # массив для сохранения пар (строка, столбец) for _ in range(100): A_B.append((generator(0.5), generator(0.25))) # заполнение массива парами money_A = [] # массив для подсчета монет игрока А for i in range(100): if A_B[i][0] == A_B[i][1]: money_A.append(2) elif A_B[i][0] == 1 and A_B[i][1] == 0: money_A.append(-1) elif A_B[i][0] == 0 and A_B[i][1] == 1: money_A.append(-3) average = sum(money_A)/100 # среднее значение игры print("Выигрыш\проигрыш игрока А:", sum(money_A), "\nСреднее значение:", average) mat_exp_win = 2 * 0.125 + 2 * 0.375 # мат ожидание выигрыша mat_exp_lose = - 3 * 0.375 - 1 * 0.125 # мат ожидание проигрыша print("Мат. ожидание выигрыша:", mat_exp_win) print("Мат. ожидание проигрыша:", mat_exp_lose) msd = 0 # инициализация СКО for i in range(100): msd += (money_A[i] - average) ** 2 # расчёт СКО msd = msd / 100 # расчёт СКО print("СКО:", msd) dispersion = 2 ** 2 * 0.125 + 2 ** 2 * 0.375 + (-1) ** 2 * 0.125 + (-3) ** 2 * 0.375 - (2 * 0.125 + 2 * 0.375 + -1 * 0.125 + -3 * 0.375) ** 2 # расчёт дисперсии theoretical_msd = dispersion ** 0.5 # расчёт теоретического СКО print("Дисперсия:", dispersion) print("Теоретическое СКО:", theoretical_msd)
Результат:
Выигрыш\проигрыш игрока А: -14
Среднее значение: -0.14
Мат. ожидание выигрыша: 1.0
Мат. ожидание проигрыша: -1.25
СКО: 5.640400000000008
Дисперсия: 5.4375
Теоретическое СКО: 2.331844763272204
