форкнуто от main/python-labs
Родитель
e5cda69ab4
Сommit
45465b0da8
@ -0,0 +1,9 @@
|
||||
import modtask1
|
||||
mu = float(input("Введите мат. ожидание (mu): "))
|
||||
var = float(input("Введите дисперсию (var): "))
|
||||
n = int(input("Введите число отсчетов (n): "))
|
||||
filename = input("Введите имя файла (например noise.txt): ").strip()
|
||||
s = modtask1.shum(mu, var, n, filename)
|
||||
print("Готово! Список получен и записан в файл.")
|
||||
print("Длина списка:", len(s))
|
||||
print("Первые 10 значений:", s[:10])
|
||||
@ -0,0 +1,17 @@
|
||||
import random
|
||||
import math
|
||||
|
||||
def shum(mu, var, n, filename):
|
||||
sigma = math.sqrt(var)
|
||||
data = []
|
||||
f = open(filename, "w", encoding="utf-8")
|
||||
for i in range(n):
|
||||
x = random.gauss(mu, sigma)
|
||||
data.append(x)
|
||||
if (i + 1) % 3 == 0:
|
||||
f.write(f"{data[i-2]} {data[i-1]} {data[i]}\n")
|
||||
elif i == n - 1:
|
||||
start = i - (i % 3)
|
||||
f.write(" ".join(str(v) for v in data[start:]) + "\n")
|
||||
f.close()
|
||||
return data
|
||||
@ -0,0 +1,2 @@
|
||||
4.903428780465844 0.587814428103369 4.692004162944187
|
||||
1.7931553860723835 5.797829782338331 2.3303270038829353
|
||||
@ -0,0 +1,58 @@
|
||||
# Индивидуальное контрольное задание по теме 8
|
||||
Бушманов А.С. А-01-23
|
||||
## Задание: Вариант 2
|
||||
### Из темы 7:
|
||||
Разработайте функцию с 4 аргументами, создающую последовательность отсчетов случайного, нормально распределенного сигнала типа белого шума с заданными параметрами: математическое ожидание и дисперсия, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - пробел в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
||||
### Из темы 8:
|
||||
По указанному преподавателем варианту контрольного задания обратитесь к индивидуальному заданию с таким номером в теме 7, разработайте функцию, на ее основе создайте модуль. Создайте второй модуль, в котором должны быть инструкции для ввода/создания исходных данных для проверки работы функции, вызов функции и отображение полученных результатов.
|
||||
|
||||
## Решение:
|
||||
#### Модуль 1: modtask1.py
|
||||
```python
|
||||
import random
|
||||
import math
|
||||
|
||||
def shum(mu, var, n, filename):
|
||||
sigma = math.sqrt(var)
|
||||
data = []
|
||||
f = open(filename, "w", encoding="utf-8")
|
||||
for i in range(n):
|
||||
x = random.gauss(mu, sigma)
|
||||
data.append(x)
|
||||
if (i + 1) % 3 == 0:
|
||||
f.write(f"{data[i-2]} {data[i-1]} {data[i]}\n")
|
||||
elif i == n - 1:
|
||||
start = i - (i % 3)
|
||||
f.write(" ".join(str(v) for v in data[start:]) + "\n")
|
||||
f.close()
|
||||
return data
|
||||
```
|
||||
#### Модуль 2: modtask0.py
|
||||
```python
|
||||
import modtask1
|
||||
mu = float(input("Введите мат. ожидание (mu): "))
|
||||
var = float(input("Введите дисперсию (var): "))
|
||||
n = int(input("Введите число отсчетов (n): "))
|
||||
filename = input("Введите имя файла (например noise.txt): ").strip()
|
||||
s = modtask1.shum(mu, var, n, filename)
|
||||
print("Готово! Список получен и записан в файл.")
|
||||
print("Длина списка:", len(s))
|
||||
print("Первые 10 значений:", s[:10])
|
||||
```
|
||||
## Ответ:
|
||||
```python
|
||||
import modtask0
|
||||
Введите мат. ожидание (mu): 3
|
||||
Введите дисперсию (var): 6
|
||||
Введите число отсчетов (n): 6
|
||||
Введите имя файла (например noise.txt): task1
|
||||
Готово! Список получен и записан в файл.
|
||||
Длина списка: 6
|
||||
Первые 10 значений: [4.903428780465844, 0.587814428103369, 4.692004162944187, 1.7931553860723835, 5.797829782338331, 2.3303270038829353]
|
||||
```
|
||||
#### Файл txt:
|
||||
```
|
||||
4.903428780465844 0.587814428103369 4.692004162944187
|
||||
1.7931553860723835 5.797829782338331 2.3303270038829353
|
||||
|
||||
```
|
||||
Загрузка…
Ссылка в новой задаче