Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- from decimal import Decimal, ROUND_HALF_UP
- #part 1
- list=[]
- i=True
- S=0
- S2=0
- print("Введите числа в столбик, в конце пустую строку")
- while i:
- i=input();
- ii=i.replace(",", ".");
- if i:
- list.append(float(ii));
- S+=float(ii);
- S2+=math.pow(float(ii),2);
- list.sort();
- print(list)
- print("Количество всех значений=%f" % (len(list)))
- print("Сумма всех значений=",S);
- print("Сумма квадратов всех значений=",S2);
- print("Выборочное среднее=",S/len(list));
- print("Выборочное среднее для квадратов",S2/len(list));
- print("Выборочная дисперсия",S2/len(list)-math.pow(S/len(list),2))
- print("Выборочная СКО",math.sqrt(S2/len(list)-math.pow(S/len(list),2)));
- print("Исправленная дисперсия",len(list)*(S2/len(list)-math.pow(S/len(list),2))/(len(list)-1));
- print("Исправленная СКО", math.sqrt(len(list)*(S2/len(list)-math.pow(S/len(list),2))/(len(list)-1)))
- #part 2
- k=1+math.log2(len(list)); # кол-во интервалов
- print("Количество интервалов",math.ceil(k));
- #нахождение и округление наименьшего и наибольшего
- x0=Decimal(list[0]);
- x0=x0.quantize(Decimal("1.0"), ROUND_HALF_UP);
- xk=Decimal(list[len(list)-1]);
- xk=xk.quantize(Decimal("1.0"), ROUND_HALF_UP);
- print(" Начало интервалов x0=",x0)
- print("Наибольшее округленное xk=",xk)
- print("Длина каждого интервала=",((xk-x0)/math.ceil(k)).quantize(Decimal("1.00"), ROUND_HALF_UP))
- #вывод интервалов,середины интервалов,выборочное среднее
- xn=x0
- xsred=0
- x2sred=0
- for i in range(1,math.ceil(k)):
- n=0
- xe=xn+((xk-x0)/math.ceil(k)).quantize(Decimal("1.00"), ROUND_HALF_UP)
- for j in range(int(len(list))):
- if (xn<=list[j]<xe):
- n+=1
- xsred+=((xe+xn)/2)*n #для выборочного среднего
- x2sred+=math.pow((xe+xn)/2,2)*n # для выбороч квадрата среднего
- print("Границе интервала N%f - [%f,%f) принадлежит %f число/чисел, его середина - %f"%(i,xn,xe,n,(xe+xn)/2))
- xn=xe
- xe=xn+((xk-x0)/math.ceil(k)).quantize(Decimal("1.00"), ROUND_HALF_UP);
- n=0
- for j in range(len(list)):
- if (xn <= list[j] <= xe):
- n += 1
- print("Границе интервала N%f - [%f,%f] принадлежит %f число/чисел, его середина - %f" % (math.ceil(k), xn, xe,n,(xe+xn)/2))
- xsred+=((xe+xn)/2)*n #для выборочного среднего
- x2sred+=math.pow((xe+xn)/2,2)*n # для выбороч квадрата среднего
- print("Выборочное среднее=%f, Выборочное среднее для квадратов=%f"%(xsred/len(list),x2sred/len(list)))
- #Часть 3.
- print("Часть 3. Выборочная дисперсия=",x2sred/len(list)-math.pow(xsred/len(list),2))
- print("Выборочное СКО=",math.sqrt(x2sred/len(list)-math.pow(xsred/len(list),2)));
- print("Исправленная дисперсия=",len(list)*(x2sred/len(list)-math.pow(xsred/len(list),2))/(len(list)-1))
- print("Исправленная СКО",math.sqrt(len(list)*(x2sred/len(list)-math.po
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement