форкнуто от main/python-labs
Родитель
e74566c155
Сommit
bedf5c5468
@ -0,0 +1,4 @@
|
|||||||
|
5.918285660014072,9.853825872834358,4.914306865322827
|
||||||
|
3.0855612967600674,6.9542382200414385,2.0434201644665984
|
||||||
|
3.5800023965008387,9.325616310281028,8.954675432931069
|
||||||
|
1.1625623856949419,5.6526777248438265,2.7489262769221523
|
||||||
@ -1,21 +0,0 @@
|
|||||||
def histogram(data, num_bins):
|
|
||||||
"""Вычисляет и выводит гистограмму в виде таблицы, возвращает bins и counts."""
|
|
||||||
min_val, max_val = min(data), max(data)
|
|
||||||
bin_width = (max_val - min_val) / num_bins
|
|
||||||
bins = [min_val + i * bin_width for i in range(num_bins + 1)] #список границ интервалов min=0, max=10, num_bins=5 → bins=[0, 2, 4, 6, 8, 10]
|
|
||||||
counts = []
|
|
||||||
for i in range(num_bins):
|
|
||||||
count = 0
|
|
||||||
for x in data:
|
|
||||||
if bins[i] <= x < bins[i+1] or (x == max_val and i == num_bins - 1):
|
|
||||||
count += 1
|
|
||||||
counts.append(count)
|
|
||||||
|
|
||||||
print("Гистограмма:")
|
|
||||||
for i in range(num_bins):
|
|
||||||
print(f"Интервал: [{bins[i]:.2f}, {bins[i+1]:.2f}], Элементов: {int(counts[i])}")
|
|
||||||
|
|
||||||
return bins, counts
|
|
||||||
|
|
||||||
import taskik
|
|
||||||
|
|
||||||
@ -0,0 +1,64 @@
|
|||||||
|
# Индивидуальное контрольное задание по теме 7
|
||||||
|
|
||||||
|
Анисенков Павел, А-01-23
|
||||||
|
|
||||||
|
## Задание
|
||||||
|
3.Разработайте функцию с 4 аргументами, создающую последовательность отсчетов случайно-го, равномерно распределенного сигнала типа белого шума с заданными параметрами: грани-цы диапазона изменения, число отсчетов (аргументы функции). Сигнал должен быть записан построчно, по 3 элемента в строке с разделителем - запятая в текстовый файл с заданным именем (4-й аргумент функции), а также возвращен в вызывающую программу в виде списка.
|
||||||
|
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
|
||||||
|
```py
|
||||||
|
import random
|
||||||
|
import math
|
||||||
|
import os
|
||||||
|
|
||||||
|
def bely_shum(niz_gr, verh_gr, kol_otschetov, moifail):
|
||||||
|
"""
|
||||||
|
Создает последовательность отсчетов случайного, равномерно
|
||||||
|
распределенного сигнала типа белого шума с заданными параметрами
|
||||||
|
|
||||||
|
Аргументы:
|
||||||
|
niz_gr - нижняя граница диапазона
|
||||||
|
verh_gr - верхняя граница диапазона
|
||||||
|
kol_otschetov - число отсчетов
|
||||||
|
moifail - имя файла для записи
|
||||||
|
|
||||||
|
Возвращает:
|
||||||
|
Список сгенерированных значений
|
||||||
|
|
||||||
|
"""
|
||||||
|
signal = []
|
||||||
|
for i in range(kol_otschetov):
|
||||||
|
sluch = niz_gr + (verh_gr - niz_gr) * random.random()
|
||||||
|
signal.append(sluch)
|
||||||
|
|
||||||
|
fail = open(moifail, 'w')
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
while i < len(signal):
|
||||||
|
str_el = signal[i:i+3]
|
||||||
|
zapis = ','.join(str(chislo) for chislo in str_el)
|
||||||
|
fail.write(zapis + '\n')
|
||||||
|
i += 3
|
||||||
|
fail.close()
|
||||||
|
return signal
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
os.chdir(r'C:\Users\Professional\Desktop\python-labs\TEMA7')
|
||||||
|
|
||||||
|
nizhnyaya = 0.0
|
||||||
|
verhnyaya = 10.0
|
||||||
|
kolichestvo = 12
|
||||||
|
moifail = "signal_belogo_shuma.txt"
|
||||||
|
|
||||||
|
res = bely_shum(nizhnyaya, verhnyaya, kolichestvo, moifail)
|
||||||
|
|
||||||
|
print("Сгенерированный сигнал:")
|
||||||
|
print(res)
|
||||||
|
print(f"Данные записаны в файл: {moifail}")
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
Загрузка…
Ссылка в новой задаче