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

ЛР1 / закон Пуассона

.py
Скачиваний:
48
Добавлен:
03.07.2021
Размер:
1.62 Кб
Скачать
генерирование дискретной случайной переменной(Пуассоновский закон)

import random
import math

table_values = [0.05, 3.841, 5.991, 7.815, 9.488, 11.070, 12.592, 14.067, 15.507, 16.919, 18.307, 19.675, 21.026, 22.362, 23.685, 24.996]

# 1. ввод входных значений
lambd = float(input('Введите лямбду-параметр(0..1): '))
n = int(input('Введите количество данных: '))
m = int(input('Введите количество опытов: '))

# 2. проведение m опытов и подсчет количества полученных значений
F = [0 for _ in range(n)] # список счетчиков

for _ in range(m):
U = random.random() # генерируем случайное число от 0 до 1
i = 0
p = math.exp(-lambd)
R = p
while(U > R):
p *= lambd / (i + 1)
R += p
i += 1
F[i] += 1

# 3. вычисление теоретических частот
P = [math.exp(-lambd) * (lambd ** i) / math.factorial(i) for i in range(n)] # список вероятностей по Пуассону
T = [m * P[i] for i in range(n)] # список теоретических частот

# 4. проверка по критерию Пирсона
Chi_Square = sum([(F[i] - T[i]) ** 2 / T[i] for i in range(n)])
critical_value = table_values[n - 2]

# 5. вывод (выходные значения)
print(F)
print(T)
print(Chi_Square)
print(critical_value)
print(Chi_Square < critical_value)
Соседние файлы в папке ЛР1