VatariShin 2 месяцев назад
Родитель 0dec7f90aa
Сommit ad7c31afbf

@ -0,0 +1,7 @@
import M2
from numpy import frombuffer, float64
with open('Res456.bin', 'rb') as file:
data = file.read()
decoded = frombuffer(data, dtype=float64)
print(f'Оценка мат. ожидания {decoded[-2]}\nОценка медианы {decoded[-1]}')

@ -0,0 +1,7 @@
from numpy import median, mean
def func1(SPS, KL):
return sorted(SPS, reverse=KL)
def func2(data):
return median(data), mean(data)

@ -0,0 +1,19 @@
from numpy.random import normal
from math import sqrt
from pylab import plot, show
import M1
print('Введите параметры выборки случайной велечины')
n = int(input('Введите число элементов: '))
m = int(input('Введите мат ожидание: '))
d2 = int(input('Введите дисперсию: '))
data = normal(m, sqrt(d2), n)
KL = int(input('Введите значение бинарного ключа: '))
orderedData = M1.func1(data, KL)
me, mede = M1.func2(orderedData)
with open('Res456.bin', 'wb') as file:
data.tofile(file)
me.tofile(file)
mede.tofile(file)
plot(data)
show()

Двоичные данные
TEMA9/Res456.bin

Двоичный файл не отображается.

@ -0,0 +1,66 @@
# Индивидуальное контрольное задание по теме 9
Коваленко Дмитрий, А-01-23
## Задание 12
1) Создайте модуль М1, содержащий две функции:
- функция 1: аргумент - список SPS и бинарный ключ KL; функция должна создавать новый список с элементами из SPS, упорядоченными по возрастанию (при KL=0) или по убыванию величины (при KL=1);
- функция 2: аргумент - список или кортеж; функция должна рассчитать по нему медиану и среднее значение.
2) Создайте еще один модуль М2, в котором должны выполняться следующие операции:
- по запросу вводятся параметры выборки случайной величины, подчиняющейся нормальному распределению: N - число элементов выборки, M - её математическое ожидание, D2-дисперсия,
- создаётся выборка с заданными параметрами,
- у пользователя запрашивается значение бинарного ключа;
- с помощью функции 1 по выборке рассчитывается упорядоченный ряд и по нему - медиана и среднее значение;
- с помощью функции 2 по выборке рассчитываются оценка матожидания и медиана;
- исходная выборка и результаты расчета записываются в бинарный файл Res456.bin.
- выборка представляется в виде графика.
3) Создайте модуль М0 - главную программу, которая вызывает М2 и отображает результаты расчета на экране.
4) Проведите расчеты при 3-х разных наборах значений параметров.
## Решение
Модуль-реализация M1
```py
from numpy import median, mean
def func1(SPS, KL):
return sorted(SPS, reverse=KL)
def func2(data):
return median(data), mean(data)
```
Модуль-реализация M2
```py
from numpy.random import normal
from math import sqrt
from pylab import plot, show
import M1
print('Введите параметры выборки случайной велечины')
n = int(input('Введите число элементов: '))
m = int(input('Введите мат ожидание: '))
d2 = int(input('Введите дисперсию: '))
data = normal(m, sqrt(d2), n)
KL = int(input('Введите значение бинарного ключа: '))
orderedData = M1.func1(data, KL)
me, mede = M1.func2(orderedData)
with open('Res456.bin', 'wb') as file:
data.tofile(file)
me.tofile(file)
mede.tofile(file)
plot(data)
show()
```
Модуль-проверка
```py
import M2
from numpy import frombuffer, float64
with open('Res456.bin', 'rb') as file:
data = file.read()
decoded = frombuffer(data, dtype=float64)
print(f'Оценка мат. ожидания {decoded[-2]}\nОценка медианы {decoded[-1]}')
```
Загрузка…
Отмена
Сохранить