Изменил(а) на 'TEMA9/test.md'

main
TurkhanovAK 1 неделю назад
Родитель eedbfb0c3c
Сommit 5c9daf6946

@ -1,56 +1,56 @@
\# Тест по модулю 3 # Тест по модулю 3
Турханов Артем, А-03-23, Вариант 30 Турханов Артем, А-03-23, Вариант 30
\## Задание ## Задание
1\) Создайте модуль М1, содержащий две функции: 1) Создайте модуль М1, содержащий две функции:
\- функция 1: аргумент - список или кортеж с выборкой наблюдений; функция должна произвести расчет по выборке оценок математического ожидания, стандартного отклонения, медианы, наименьшего и наибольшего значений и вернуть их в виде списка в вызывающую программу; - функция 1: аргумент - список или кортеж с выборкой наблюдений; функция должна произвести расчет по выборке оценок математического ожидания, стандартного отклонения, медианы, наименьшего и наибольшего значений и вернуть их в виде списка в вызывающую программу;
\- функция 2; аргументы - список или кортеж с выборкой наблюдений и целочисленный параметр m; функция должна произвести расчет по этой выборке гистограммы распределения случайной величины с m интервалами и вернуть ее в виде списка в вызывающую программу. - функция 2; аргументы - список или кортеж с выборкой наблюдений и целочисленный параметр m; функция должна произвести расчет по этой выборке гистограммы распределения случайной величины с m интервалами и вернуть ее в виде списка в вызывающую программу.
2\) Создайте еще один модуль М2, в котором должны выполняться следующие операции: 2) Создайте еще один модуль М2, в котором должны выполняться следующие операции:
\- запрашивается имя текстового файла с выборкой, проверяется его наличие и при отсутствии - повторяется запрос; - запрашивается имя текстового файла с выборкой, проверяется его наличие и при отсутствии - повторяется запрос;
\- выборка вводится из файла и записывается в список (в строках файла может быть разное число значений, разделенных пробелами); - выборка вводится из файла и записывается в список (в строках файла может быть разное число значений, разделенных пробелами);
\- запрашивается число интервалов для гистограммы (с проверкой его принадлежности к интервалу от 2 до 10); - запрашивается число интервалов для гистограммы (с проверкой его принадлежности к интервалу от 2 до 10);
\- с помощью функций 1 и 2 по выборке рассчитывается оценки статистических параметров случайной величины; - с помощью функций 1 и 2 по выборке рассчитывается оценки статистических параметров случайной величины;
\- гистограмма отображается на экране в виде диаграммы; - гистограмма отображается на экране в виде диаграммы;
\- рассчитанные значения записываются в бинарный файл Res1010.bib. - рассчитанные значения записываются в бинарный файл Res1010.bib.
3\) Создайте модуль М0 - главную программу, которая вызывает М2 и отображает результаты расчета на экране. 3) Создайте модуль М0 - главную программу, которая вызывает М2 и отображает результаты расчета на экране.
4\) Проведите расчеты с 2 файлами с исходными данными. 4) Проведите расчеты с 2 файлами с исходными данными.
\## Решение ## Решение
Содержимое модуля M1: Содержимое модуля M1:
@ -58,71 +58,71 @@
def stats(t): def stats(t):
  t = list(t) t = list(t)
  N = len(t) N = len(t)
  m = sum(t)/N m = sum(t)/N
  s = 0 s = 0
  for i in t: for i in t:
  s += (i - m)\*\*2 s += (i - m)\*\*2
  std = s\*\*0.5 std = s\*\*0.5
  t.sort() t.sort()
  med = 0 med = 0
  if N%2 != 0: med = t\[N//2] if N%2 != 0: med = t\[N//2]
  else: else:
  med = (t\[N//2 - 1] + t\[N//2])/2 med = (t\[N//2 - 1] + t\[N//2])/2
  return \[m,std,med,min(t),max(t)] return \[m,std,med,min(t),max(t)]
def hist(t,m): def hist(t,m):
  t = list(t) t = list(t)
  f = False f = False
  N = len(t) N = len(t)
  L = max(t) - min(t) L = max(t) - min(t)
  l = L//m l = L//m
  lg = min(t) lg = min(t)
  rg = min(t)+l rg = min(t)+l
  res = \[] res = \[]
  for j in range(m): for j in range(m):
  k = 0 k = 0
  for i in range(N): for i in range(N):
&nbsp; if (t\[i] >= lg) and (t\[i] < rg): if (t\[i] >= lg) and (t\[i] < rg):
&nbsp; k+=1 k+=1
&nbsp; res.append(k) res.append(k)
&nbsp; lg += l lg += l
&nbsp; rg += l rg += l
&nbsp; res\[-1] = res\[-1]+1 res\[-1] = res\[-1]+1
&nbsp; return res return res
``` ```
@ -146,15 +146,15 @@ fName = input('Введите имя файла: ')
if os.path.exists(fName) == True: if os.path.exists(fName) == True:
&nbsp; print('Успешно! Файл найден!') print('Успешно! Файл найден!')
else: else:
&nbsp; while os.path.exists(fName) != True: while os.path.exists(fName) != True:
&nbsp; print('Такой файл не найден!') print('Такой файл не найден!')
&nbsp; fName = input('Введите имя файла: ') fName = input('Введите имя файла: ')
@ -164,7 +164,7 @@ data = fp.read()
fp.close() fp.close()
ls = list(map(int, data.replace('\\n', ' ').split(' '))) ls = list(map(int, data.replace('\n', ' ').split(' ')))
@ -172,11 +172,11 @@ m = int(input('Введите количество интервалов m (m > 2
if (m <= 2) or (m >= 10): if (m <= 2) or (m >= 10):
&nbsp; while (m <= 2) or (m >= 10): while (m <= 2) or (m >= 10):
&nbsp; print('Недопустимое значение!') print('Недопустимое значение!')
&nbsp; m = int(input('Введите m: ')) m = int(input('Введите m: '))
@ -186,11 +186,11 @@ hs = M1.hist(ls,m)
print('Гистограмма по данным (количество \* - количество значений в интервале):') print('Гистограмма по данным (количество * - количество значений в интервале):')
for i in range(m): for i in range(m):
&nbsp; print(hs\[i]\*'\*') print(hs\[i]\*'\*')
@ -214,15 +214,15 @@ b.close()
import M2 import M2
print('Мат. ожидание: ',M2.st\[0]) print('Мат. ожидание: ',M2.st[0])
print('Стандартное отклонение: ',M2.st\[1]) print('Стандартное отклонение: ',M2.st[1])
print('Медиана: ',M2.st\[2]) print('Медиана: ',M2.st[2])
print('Минимальное значение: ',M2.st\[3]) print('Минимальное значение: ',M2.st[3])
print('Максимальное значение: ',M2.st\[4]) print('Максимальное значение: ',M2.st[4])
@ -232,13 +232,13 @@ print('Максимальное значение: ',M2.st\[4])
Содержимое файла data.txt: Содержимое файла data.txt:
!\[d.png](d.png) ![d.png](d.png)
Содержимое файла data2.txt: Содержимое файла data2.txt:
!\[d2.png](d2.png) ![d2.png](d2.png)

Загрузка…
Отмена
Сохранить