форкнуто от main/python-labs
Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
37 строки
2.5 KiB
Markdown
37 строки
2.5 KiB
Markdown
# Индивидуальное контрольное задание по теме 8
|
|
Киреев Юрий А-02-23
|
|
## Задание
|
|
По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
|
2 вариант 7й темы
|
|
Разработайте функцию с 4 аргументами, создающую последовательность отсчетов случайного, нормально распределенного сигнала типа белого шума с заданными параметрами: математическое ожидание и дисперсия, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - пробел в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
|
## Решение
|
|
Модуль с функцией (modfun):
|
|
```py
|
|
import random
|
|
def generate_noise(mean, variance, otscheti, filename):
|
|
sto = variance**(1/2)
|
|
signal=[random.gauss(mean, sto) for x in range(otscheti)]
|
|
with open(filename, 'w') as fp:
|
|
for i in range(0,otscheti,3):
|
|
line=" ".join(str(value) for value in signal[i:i+3])
|
|
fp.write(line+"\n")
|
|
return signal
|
|
```
|
|
Модуль с инструкциями ввода/вывода (zapusk):
|
|
```py
|
|
from modfun import generate_noise
|
|
noise = generate_noise(0, 1, 5, "test.txt")
|
|
print(noise)
|
|
```
|
|
Проверка:
|
|
```py
|
|
import os
|
|
os.chdir('C:\\Users\\u522-13\\Desktop\\ПОАС')
|
|
import zapusk
|
|
[-0.698871305720859, -0.7706401494821621, 0.8869359612629606, -1.7573739796230814, 0.22414109065695026]
|
|
```
|
|
Вывод в файле:
|
|
```py
|
|
-0.698871305720859 -0.7706401494821621 0.8869359612629606
|
|
-1.7573739796230814 0.22414109065695026
|
|
``` |