Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
09.09.2026
Размер:
140 Кб
Скачать

Задание 4

Пункт 1:

# функция обучения def learning(): red_balls = 10 blue_balls = 10 for _ in range(100): A = generator(red_balls / (blue_balls + red_balls)) B = generator(0.25) if A == 0 and B == 0: red_balls += 2 elif A == 1 and B == 1: blue_balls += 2 return red_balls / (blue_balls + red_balls) A_B = [] # массив для сохранения пар (строка, столбец) probability = learning() for _ in range(100): A_B.append((generator(probability), 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 * probability + 2 * (0.5 - probability) # мат ожидание выигрыша 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 * probability + 2 ** 2 * (0.5 - probability) + (-1) ** 2 * 0.125 + (-3) ** 2 * 0.375 - (2 * probability + 2 * (0.5 - probability) + -1 * 0.125 + -3 * 0.375) ** 2 # расчёт дисперсии theoretical_msd = dispersion ** 0.5 # расчёт теоретического СКО print("Дисперсия:", dispersion) print("Теоретическое СКО:", theoretical_msd)

Результат:

Выигрыш\проигрыш игрока А: 111

Среднее значение: 1.11

Мат. ожидание выигрыша: 1.0

Мат. ожидание проигрыша: -1.25

СКО: 2.577900000000003

Дисперсия: 5.4375

Теоретическое СКО: 2.331844763272204

Пункт 2:

# функция обучения def learning(): red_balls = 100 blue_balls = 100 for _ in range(100): A = generator(red_balls / (blue_balls + red_balls)) B = generator(0.25) if A == 1 and B == 0: blue_balls -= 1 elif A == 0 and B == 1: red_balls -= 3 return red_balls / (blue_balls + red_balls) A_B = [] # массив для сохранения пар (строка, столбец) probability = learning() for _ in range(100): A_B.append((generator(probability), 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 * probability + 2 * (0.5 - probability) 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 * probability + 2 ** 2 * (0.5 - probability) + (-1) ** 2 * 0.125 + (-3) ** 2 * 0.375 - (2 * probability + 2 * (0.5 - probability) + -1 * 0.125 + -3 * 0.375) ** 2 # расчёт дисперсии theoretical_msd = dispersion ** 0.5 # расчёт теоретического СКО print("Дисперсия:", dispersion) print("Теоретическое СКО:", theoretical_msd)

Результат:

Выигрыш\проигрыш игрока А: 95

Среднее значение: 0.95

Мат. ожидание выигрыша: 1.0

Мат. ожидание проигрыша: -1.25

СКО: 3.2475000000000027

Дисперсия: 5.4375

Теоретическое СКО: 2.331844763272204

Пункт 3:

# функция обучения def learning(): red_balls_A = 10 blue_balls_A = 10 red_balls_B = 10 blue_balls_B = 10 for _ in range(100): A = generator(red_balls_A / (blue_balls_A + red_balls_A)) B = generator(red_balls_B / (blue_balls_B + red_balls_B)) if A == 0 and B == 0: red_balls_A += 2 elif A == 1 and B == 1: blue_balls_A += 2 elif A == 1 and B == 0: blue_balls_B += 1 elif A == 0 and B == 1: red_balls_B += 3 return red_balls_A / (blue_balls_A + red_balls_A) A_B = [] # массив для сохранения пар (строка, столбец) probability = learning() for _ in range(100): A_B.append((generator(probability), 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 * probability + 2 * (0.5 - probability) 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 * probability + 2 ** 2 * (0.5 - probability) + (-1) ** 2 * 0.125 + (-3) ** 2 * 0.375 - (2 * probability + 2 * (0.5 - probability) + -1 * 0.125 + -3 * 0.375) ** 2 # расчёт дисперсии theoretical_msd = dispersion ** 0.5 # расчёт теоретического СКО print("Дисперсия:", dispersion) print("Теоретическое СКО:", theoretical_msd)

Результат:

Выигрыш\проигрыш игрока А: -30

Среднее значение: -0.3

Мат. ожидание выигрыша: 1.0

Мат. ожидание проигрыша: -1.25

СКО: 5.610000000000005

Дисперсия: 5.4375

Теоретическое СКО: 2.331844763272204

Соседние файлы в папке ИДЗ по ДМиТИ 2023