Advertisement
Guest User

Эксперименты

a guest
Nov 20th, 2017
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.78 KB | None | 0 0
  1. from math import factorial, exp, sqrt, pi, fabs
  2. from random import random
  3.  
  4. # Сочитания из n по k
  5. def count_c(n, k):
  6.     res = 1.0
  7.     for i in range(n-k+1, n+1):
  8.         res *= i
  9.     for i in range(1, k+1):
  10.         res /= i
  11.     #print ('C ',k,' ',n,' = ', res)
  12.     return res
  13.  
  14.  
  15. # Метод Бернулли
  16. def bernuli(n, p, m):
  17.     q = 1 - p
  18.     return count_c(n, m) * p**m * q**(n-m)
  19.  
  20.  
  21. # Метод Пуассона
  22. def puasson(n, p, m):
  23.     return (n * p)**m / factorial(m) * exp(- n * p)
  24.  
  25.  
  26. # Гаус
  27. def gaus(x):
  28.     return 1 / sqrt(2 * pi) * exp(- x * x / 2)
  29.  
  30.  
  31. # Локальная формула Муавра-Лапласа
  32. def local_muavr_laplas(n, p, k):
  33.     q = 1 - p
  34.     return 1/sqrt(n * p * q) * gaus((k - n * p) / sqrt(n * p * q))
  35.  
  36. # Начальные данные
  37. n = 30
  38. p = 0.25
  39.  
  40. # Теоретические подсчёты
  41. print('ТЕОРИЯ')
  42. print('Бернулли: ', 1 - sum([bernuli(n, p, m) for m in range(11)]))
  43. #print('Значения Бернулли: ', [bernuli(n, p, m) for m in range(11)]) # Печать
  44. print('Пуасон: ', 1 - sum([puasson(n, p, m) for m in range(11)]))
  45. #print('Значения Пуасон: ', [puasson(n, p, m) for m in range(11)]) # Печать
  46. print('Локальный Лаплас: ', 1 - sum([local_muavr_laplas(n, p, m) for m in range(11)]))
  47. #print('Значения Лаплас: ', [local_muavr_laplas(n, p, m) for m in range(11)]) # Печать
  48. print('Интегральный Лаплас: ', -(0.9292-1)) # x30 = 9.48 f(x>4) = 1
  49.  
  50. print('\nПРАКТИКА')
  51. n = 10000
  52. tests = [1 if random() < p else 0 for i in range(n)] # Генерируем n испытаний
  53. print('Успешных тестов: ', sum(tests))
  54. print('Вероятность успеха: ', sum(tests)/n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement