Advertisement
statheist

Интервальный вариационный ряд и числовые хар-ки

Nov 24th, 2022 (edited)
627
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.41 KB | None | 0 0
  1. import math
  2. from decimal import Decimal, ROUND_HALF_UP
  3. #part 1
  4. list=[]
  5. i=True
  6. S=0
  7. S2=0
  8. print("Введите числа в столбик, в конце пустую строку")
  9. while i:
  10.    i=input();
  11.    ii=i.replace(",", ".");
  12.    if i:
  13.        list.append(float(ii));
  14.        S+=float(ii);
  15.        S2+=math.pow(float(ii),2);
  16.  
  17. list.sort();
  18. print(list)
  19. print("Количество всех значений=%f" % (len(list)))
  20. print("Сумма всех значений=",S);
  21. print("Сумма квадратов всех значений=",S2);
  22. print("Выборочное среднее=",S/len(list));
  23. print("Выборочное среднее для квадратов",S2/len(list));
  24. print("Выборочная дисперсия",S2/len(list)-math.pow(S/len(list),2))
  25. print("Выборочная СКО",math.sqrt(S2/len(list)-math.pow(S/len(list),2)));
  26. print("Исправленная дисперсия",len(list)*(S2/len(list)-math.pow(S/len(list),2))/(len(list)-1));
  27. print("Исправленная СКО", math.sqrt(len(list)*(S2/len(list)-math.pow(S/len(list),2))/(len(list)-1)))
  28.  
  29. #part 2
  30. k=1+math.log2(len(list)); # кол-во интервалов
  31. print("Количество интервалов",math.ceil(k));
  32.  
  33. #нахождение и округление наименьшего и наибольшего
  34. x0=Decimal(list[0]);
  35. x0=x0.quantize(Decimal("1.0"), ROUND_HALF_UP);
  36. xk=Decimal(list[len(list)-1]);
  37. xk=xk.quantize(Decimal("1.0"), ROUND_HALF_UP);
  38. print(" Начало интервалов x0=",x0)
  39. print("Наибольшее округленное xk=",xk)
  40. print("Длина каждого интервала=",((xk-x0)/math.ceil(k)).quantize(Decimal("1.00"), ROUND_HALF_UP))
  41.  
  42. #вывод интервалов,середины интервалов,выборочное среднее
  43. xn=x0
  44. xsred=0
  45. x2sred=0
  46. for i in range(1,math.ceil(k)):
  47.     n=0
  48.     xe=xn+((xk-x0)/math.ceil(k)).quantize(Decimal("1.00"), ROUND_HALF_UP)
  49.     for j in range(int(len(list))):
  50.         if (xn<=list[j]<xe):
  51.             n+=1
  52.     xsred+=((xe+xn)/2)*n #для выборочного среднего
  53.     x2sred+=math.pow((xe+xn)/2,2)*n # для выбороч квадрата среднего
  54.     print("Границе интервала N%f - [%f,%f) принадлежит %f число/чисел, его середина - %f"%(i,xn,xe,n,(xe+xn)/2))
  55.     xn=xe
  56. xe=xn+((xk-x0)/math.ceil(k)).quantize(Decimal("1.00"), ROUND_HALF_UP);
  57. n=0
  58. for j in range(len(list)):
  59.     if (xn <= list[j] <= xe):
  60.         n += 1
  61. print("Границе интервала N%f - [%f,%f] принадлежит %f число/чисел, его середина - %f" % (math.ceil(k), xn, xe,n,(xe+xn)/2))
  62. xsred+=((xe+xn)/2)*n #для выборочного среднего
  63. x2sred+=math.pow((xe+xn)/2,2)*n # для выбороч квадрата среднего
  64. print("Выборочное среднее=%f, Выборочное среднее для квадратов=%f"%(xsred/len(list),x2sred/len(list)))
  65.  
  66. #Часть 3.
  67. print("Часть 3. Выборочная дисперсия=",x2sred/len(list)-math.pow(xsred/len(list),2))
  68. print("Выборочное СКО=",math.sqrt(x2sred/len(list)-math.pow(xsred/len(list),2)));
  69. print("Исправленная дисперсия=",len(list)*(x2sred/len(list)-math.pow(xsred/len(list),2))/(len(list)-1))
  70. print("Исправленная СКО",math.sqrt(len(list)*(x2sred/len(list)-math.po
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement