ответвлено от main/python-labs
test: done
Этот коммит содержится в:
57
TEMA5/test.md
Обычный файл
57
TEMA5/test.md
Обычный файл
@@ -0,0 +1,57 @@
|
|||||||
|
Филиппова Евгения А-01-23
|
||||||
|
# Контрольное задание по теме 5
|
||||||
|
## 4. Создайте список с 20 случайными, нормально распределенными (математическое ожидание равно 3400, стандартное отклонение равно 121) числами. Рассчитайте по нему среднее значение и число элементов, значение которых превышает это среднее.
|
||||||
|
## Решение
|
||||||
|
```py
|
||||||
|
import random
|
||||||
|
|
||||||
|
mean = 3400
|
||||||
|
std_dev = 121
|
||||||
|
num_elements = 20
|
||||||
|
|
||||||
|
data_list = []
|
||||||
|
|
||||||
|
for i in range(num_elements):
|
||||||
|
number = random.gauss(mean, std_dev)
|
||||||
|
data_list.append(number)
|
||||||
|
|
||||||
|
print("Сгенерированный список чисел:")
|
||||||
|
for i, value in enumerate(data_list):
|
||||||
|
print(value)
|
||||||
|
|
||||||
|
average = sum(data_list) / len(data_list)
|
||||||
|
print(f"Среднее значение: {average:.2f}")
|
||||||
|
|
||||||
|
count_above_average = 0
|
||||||
|
for value in data_list:
|
||||||
|
if value > average:
|
||||||
|
count_above_average += 1
|
||||||
|
|
||||||
|
print(f"Количество элементов, превышающих среднее: {count_above_average}")
|
||||||
|
```
|
||||||
|
## Вывод
|
||||||
|
```py
|
||||||
|
Сгенерированный список чисел:
|
||||||
|
3266.0057161740197
|
||||||
|
3364.2577873809582
|
||||||
|
3348.916608655013
|
||||||
|
3262.5066922987626
|
||||||
|
3308.9415900120775
|
||||||
|
3455.0412592717685
|
||||||
|
3206.3788580234527
|
||||||
|
3504.741563444228
|
||||||
|
3453.7470771740113
|
||||||
|
3487.2596108101347
|
||||||
|
3449.8944578223154
|
||||||
|
3541.3210943794948
|
||||||
|
3438.469218313021
|
||||||
|
3352.7049681354106
|
||||||
|
3382.8377250077247
|
||||||
|
3421.6158576628404
|
||||||
|
3249.3337511565533
|
||||||
|
3143.7702393890813
|
||||||
|
3424.510733659812
|
||||||
|
3468.569809364851
|
||||||
|
Среднее значение: 3376.54
|
||||||
|
Количество элементов, превышающих среднее: 11
|
||||||
|
```
|
||||||
25
TEMA5/test.py
Обычный файл
25
TEMA5/test.py
Обычный файл
@@ -0,0 +1,25 @@
|
|||||||
|
import random
|
||||||
|
|
||||||
|
mean = 3400
|
||||||
|
std_dev = 121
|
||||||
|
num_elements = 20
|
||||||
|
|
||||||
|
data_list = []
|
||||||
|
|
||||||
|
for i in range(num_elements):
|
||||||
|
number = random.gauss(mean, std_dev)
|
||||||
|
data_list.append(number)
|
||||||
|
|
||||||
|
print("Сгенерированный список чисел:")
|
||||||
|
for i, value in enumerate(data_list):
|
||||||
|
print(value)
|
||||||
|
|
||||||
|
average = sum(data_list) / len(data_list)
|
||||||
|
print(f"Среднее значение: {average:.2f}")
|
||||||
|
|
||||||
|
count_above_average = 0
|
||||||
|
for value in data_list:
|
||||||
|
if value > average:
|
||||||
|
count_above_average += 1
|
||||||
|
|
||||||
|
print(f"Количество элементов, превышающих среднее: {count_above_average}")
|
||||||
Двоичные данные
TEMA6/M2_11.bin
Обычный файл
Двоичные данные
TEMA6/M2_11.bin
Обычный файл
Двоичный файл не отображается.
63
TEMA6/test.M2.py
Обычный файл
63
TEMA6/test.M2.py
Обычный файл
@@ -0,0 +1,63 @@
|
|||||||
|
import math
|
||||||
|
import random
|
||||||
|
import pickle
|
||||||
|
print("\n1. Ввод имени функции")
|
||||||
|
func_name = input("Введите имя функции из библиотеки math: ")
|
||||||
|
func = eval(f"math.{func_name}")
|
||||||
|
|
||||||
|
print("\n2. Создание кортежа случайных чисел")
|
||||||
|
temp_list = []
|
||||||
|
for i in range(20):
|
||||||
|
number = random.randint(11, 40)
|
||||||
|
temp_list.append(number)
|
||||||
|
|
||||||
|
numbers_tuple = tuple(temp_list)
|
||||||
|
print("Сгенерированный кортеж:")
|
||||||
|
print(numbers_tuple)
|
||||||
|
|
||||||
|
print("\n3. Применение функции к элементам кортежа")
|
||||||
|
result_list = []
|
||||||
|
for value in numbers_tuple:
|
||||||
|
result = func(value)
|
||||||
|
result_list.append(result)
|
||||||
|
|
||||||
|
print("\n4. Запись в бинарный файл")
|
||||||
|
filename = "M2_11.bin"
|
||||||
|
print(f"Имя файла: {filename}")
|
||||||
|
|
||||||
|
file = open(filename, 'wb')
|
||||||
|
pickle.dump(numbers_tuple, file)
|
||||||
|
pickle.dump(result_list, file)
|
||||||
|
file.close()
|
||||||
|
print("Данные успешно записаны в файл")
|
||||||
|
print("\nПроверка записи (чтение из файла):")
|
||||||
|
file = open(filename, 'rb')
|
||||||
|
read_tuple = pickle.load(file)
|
||||||
|
read_list = pickle.load(file)
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
print(f"Прочитанный кортеж (первые 5 элементов): {read_tuple[:5]}")
|
||||||
|
print(f"Прочитанный список (первые 5 элементов): {[round(x, 3) for x in read_list[:5]]}")
|
||||||
|
# 5. Расчет среднего значения разностей элементов на соседних четных и нечетных позициях
|
||||||
|
print("\n5. Расчет среднего значения разностей")
|
||||||
|
|
||||||
|
differences = []
|
||||||
|
i = 0
|
||||||
|
while i < len(result_list) - 1:
|
||||||
|
diff = result_list[i] - result_list[i+1]
|
||||||
|
differences.append(diff)
|
||||||
|
i = i + 2
|
||||||
|
print(f"Найдено {len(differences)} разностей")
|
||||||
|
if len(differences) > 0:
|
||||||
|
sum_diff = 0
|
||||||
|
for d in differences:
|
||||||
|
sum_diff = sum_diff + d
|
||||||
|
average_diff = sum_diff / len(differences)
|
||||||
|
print("\nРазности между соседними четными и нечетными позициями:")
|
||||||
|
for j in range(len(differences)):
|
||||||
|
d_1 = j * 2
|
||||||
|
print(f" {result_list[d_1]:.3f} - {result_list[d_1+1]:.3f} = {differences[j]:.3f}")
|
||||||
|
|
||||||
|
print(f"\nСреднее значение разностей: {average_diff:.6f}")
|
||||||
|
else:
|
||||||
|
print("Недостаточно элементов для вычисления разностей")
|
||||||
0
TEMA6/test.md
Обычный файл
0
TEMA6/test.md
Обычный файл
0
TEMA7/test.md
Обычный файл
0
TEMA7/test.md
Обычный файл
39
TEMA7/test.py
Обычный файл
39
TEMA7/test.py
Обычный файл
@@ -0,0 +1,39 @@
|
|||||||
|
def read_file_to_list(filename):
|
||||||
|
result = []
|
||||||
|
try:
|
||||||
|
f = open(filename, 'r', encoding='utf-8')
|
||||||
|
lines = f.readlines()
|
||||||
|
f.close()
|
||||||
|
for line in lines:
|
||||||
|
line = line.strip()
|
||||||
|
if line == '':
|
||||||
|
continue
|
||||||
|
elements = line.split(',')
|
||||||
|
row = []
|
||||||
|
for elem in elements:
|
||||||
|
elem = elem.strip()
|
||||||
|
if elem.isdigit() or (elem.startswith('-') and elem[1:].isdigit()):
|
||||||
|
row.append(int(elem))
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
if '.' in elem:
|
||||||
|
parts = elem.split('.')
|
||||||
|
if len(parts) == 2:
|
||||||
|
if (parts[0].isdigit() or (parts[0].startswith('-') and parts[0][1:].isdigit())) and parts[1].isdigit():
|
||||||
|
row.append(float(elem))
|
||||||
|
else:
|
||||||
|
row.append(elem)
|
||||||
|
else:
|
||||||
|
row.append(elem)
|
||||||
|
else:
|
||||||
|
row.append(elem)
|
||||||
|
except:
|
||||||
|
row.append(elem)
|
||||||
|
|
||||||
|
result.append(row)
|
||||||
|
|
||||||
|
except FileNotFoundError:
|
||||||
|
print(f"Ошибка: Файл '{filename}' не найден!")
|
||||||
|
return []
|
||||||
|
|
||||||
|
return result
|
||||||
8
TEMA7/test.txt
Обычный файл
8
TEMA7/test.txt
Обычный файл
@@ -0,0 +1,8 @@
|
|||||||
|
1,2,3,4,5
|
||||||
|
100,200,300
|
||||||
|
3.14,2.718,1.618,0.577
|
||||||
|
один,два,три,четыре,пять
|
||||||
|
-5,-10,-15,-20
|
||||||
|
10.5,20.7,30.9
|
||||||
|
строка1,строка2,строка3
|
||||||
|
смешанные,данные,15,20.5,-7
|
||||||
Двоичные данные
TEMA8/Figure_1.png
Обычный файл
Двоичные данные
TEMA8/Figure_1.png
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 21 KiB |
35
TEMA8/Mod1_test.py
Обычный файл
35
TEMA8/Mod1_test.py
Обычный файл
@@ -0,0 +1,35 @@
|
|||||||
|
import math
|
||||||
|
f = lambda a, x: a * math.sin(x) / x if x != 0 else a
|
||||||
|
def raschet(a, nachalo, konec, shag, name_file):
|
||||||
|
"""
|
||||||
|
Рассчитывает значения функции a*sin(x)/x на интервале
|
||||||
|
и записывает результаты в файл
|
||||||
|
|
||||||
|
Параметры:
|
||||||
|
a - коэффициент
|
||||||
|
nachalo - начало интервала
|
||||||
|
konec - конец интервала
|
||||||
|
shag - шаг
|
||||||
|
imya_faila - имя файла для сохранения
|
||||||
|
"""
|
||||||
|
# Списки для результатов
|
||||||
|
x_znach = []
|
||||||
|
y_znach = []
|
||||||
|
|
||||||
|
# Цикл для расчета значений
|
||||||
|
x = nachalo
|
||||||
|
while x <= konec:
|
||||||
|
y = f(a, x)
|
||||||
|
x_znach.append(x)
|
||||||
|
y_znach.append(y)
|
||||||
|
x = x + shag
|
||||||
|
|
||||||
|
# Запись в файл
|
||||||
|
fail = open(name_file, 'w')
|
||||||
|
for y in y_znach:
|
||||||
|
fail.write(str(y) + '\n')
|
||||||
|
fail.close()
|
||||||
|
|
||||||
|
print(f"Результаты сохранены в файл '{name_file}'")
|
||||||
|
|
||||||
|
return x_znach, y_znach
|
||||||
23
TEMA8/Mod2_test.py
Обычный файл
23
TEMA8/Mod2_test.py
Обычный файл
@@ -0,0 +1,23 @@
|
|||||||
|
import Mod1_test as m1
|
||||||
|
import math
|
||||||
|
import pylab
|
||||||
|
print("\nВведите параметры для расчета:")
|
||||||
|
a = float(input("Коэффициент a = "))
|
||||||
|
print("\nИнтервал расчета (по заданию: 0 < x ≤ 50):")
|
||||||
|
nachalo = float(input("Начало интервала = "))
|
||||||
|
konec = float(input("Конец интервала (до 50) = "))
|
||||||
|
shag = float(input("Шаг (0.5) = "))
|
||||||
|
|
||||||
|
name_file = input("Имя файла для сохранения = ")
|
||||||
|
|
||||||
|
x_list, y_list = m1.raschet(a, nachalo, konec, shag, name_file)
|
||||||
|
|
||||||
|
for i in range(min(10, len(x_list))):
|
||||||
|
print(f"{x_list[i]:6.2f} | {y_list[i]:10.4f}")
|
||||||
|
|
||||||
|
pylab.plot(x_list, y_list, 'b-', linewidth=2)
|
||||||
|
pylab.xlabel('x')
|
||||||
|
pylab.ylabel('y')
|
||||||
|
pylab.title(f'График функции y = {a}*sin(x)/x')
|
||||||
|
pylab.grid(True)
|
||||||
|
pylab.show()
|
||||||
99
TEMA8/test
Обычный файл
99
TEMA8/test
Обычный файл
@@ -0,0 +1,99 @@
|
|||||||
|
1.682941969615793
|
||||||
|
1.3299933154720727
|
||||||
|
0.9092974268256817
|
||||||
|
0.47877771528316515
|
||||||
|
0.0940800053732448
|
||||||
|
-0.20044755867978276
|
||||||
|
-0.3784012476539641
|
||||||
|
-0.43445783007337646
|
||||||
|
-0.3835697098652554
|
||||||
|
-0.2565601183892334
|
||||||
|
-0.09313849939964196
|
||||||
|
0.0661907655654817
|
||||||
|
0.18771045677679687
|
||||||
|
0.25013332713993036
|
||||||
|
0.24733956165584545
|
||||||
|
0.18787932061729182
|
||||||
|
0.09158188560927924
|
||||||
|
-0.015821288518275644
|
||||||
|
-0.10880422217787396
|
||||||
|
-0.16756109713746095
|
||||||
|
-0.181816401191037
|
||||||
|
-0.1522525521197267
|
||||||
|
-0.08942881966673916
|
||||||
|
-0.01061150357619211
|
||||||
|
0.06464108258871398
|
||||||
|
0.11907917430394385
|
||||||
|
0.14151533652783863
|
||||||
|
0.1289510421413356
|
||||||
|
0.08670504535428224
|
||||||
|
0.026640965411328592
|
||||||
|
-0.03598791458313316
|
||||||
|
-0.08627701119625734
|
||||||
|
-0.11310558727994786
|
||||||
|
-0.11150011491064658
|
||||||
|
-0.08344302741907512
|
||||||
|
-0.037024931726444596
|
||||||
|
0.015776548385573932
|
||||||
|
0.06210665330457447
|
||||||
|
0.09129452507276277
|
||||||
|
0.09725168724671213
|
||||||
|
0.0796814893843863
|
||||||
|
0.04387339563666941
|
||||||
|
-0.0008046644809458069
|
||||||
|
-0.043304401107600844
|
||||||
|
-0.07358438297175397
|
||||||
|
-0.08494315131739542
|
||||||
|
-0.07546486350055198
|
||||||
|
-0.0482740840706224
|
||||||
|
-0.010588140007821843
|
||||||
|
0.028161439531150453
|
||||||
|
0.05865834234458482
|
||||||
|
0.07391378438520128
|
||||||
|
0.07084266136329652
|
||||||
|
0.050853820484007106
|
||||||
|
0.019350413450562074
|
||||||
|
-0.015702150188547117
|
||||||
|
-0.045767854083652935
|
||||||
|
-0.06379873954867482
|
||||||
|
-0.06586877493952412
|
||||||
|
-0.05200834357096952
|
||||||
|
-0.026066944859552584
|
||||||
|
0.005331711472491862
|
||||||
|
0.03446416757760566
|
||||||
|
0.05439202606435881
|
||||||
|
0.06060071879437983
|
||||||
|
0.052008358219055306
|
||||||
|
0.031122510948236697
|
||||||
|
0.0033326074263724387
|
||||||
|
-0.024467581114065773
|
||||||
|
-0.04557852204010741
|
||||||
|
-0.05509882519128421
|
||||||
|
-0.05105298015642222
|
||||||
|
-0.034785845046324294
|
||||||
|
-0.010549269313944655
|
||||||
|
0.015598346247862386
|
||||||
|
0.03729738144268281
|
||||||
|
0.049425404424825015
|
||||||
|
0.049298504085821676
|
||||||
|
0.03725565802396744
|
||||||
|
0.01650129268387262
|
||||||
|
-0.007737691161205316
|
||||||
|
-0.029520971227733485
|
||||||
|
-0.0436438832340778
|
||||||
|
-0.046874658970333834
|
||||||
|
-0.038687197331562714
|
||||||
|
-0.021324851309601257
|
||||||
|
0.0008046329593369808
|
||||||
|
0.02224203674393834
|
||||||
|
0.0378179344237386
|
||||||
|
0.043894104281836065
|
||||||
|
0.0392081890282091
|
||||||
|
0.02512673481347465
|
||||||
|
0.005258430755115915
|
||||||
|
-0.01546548838459753
|
||||||
|
-0.03201061088848612
|
||||||
|
-0.04045807994239575
|
||||||
|
-0.03892867970446824
|
||||||
|
-0.027995351686209927
|
||||||
|
-0.01049499414815715
|
||||||
0
TEMA8/test.md
Обычный файл
0
TEMA8/test.md
Обычный файл
Двоичные данные
TEMA9/Figure_2.png
Обычный файл
Двоичные данные
TEMA9/Figure_2.png
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 44 KiB |
18
TEMA9/M0.py
Обычный файл
18
TEMA9/M0.py
Обычный файл
@@ -0,0 +1,18 @@
|
|||||||
|
import M2
|
||||||
|
import pylab
|
||||||
|
signal, t, F = M2.process_signal()
|
||||||
|
indices = list(range(len(signal)))
|
||||||
|
pylab.figure(figsize=(12, 6))
|
||||||
|
pylab.plot(indices, signal, 'b-o', linewidth=2, markersize=4)
|
||||||
|
pylab.xlabel('Номер отсчета')
|
||||||
|
pylab.ylabel('Значение сигнала')
|
||||||
|
pylab.title('График сигнала (приращения заболеваемости COVID-19)')
|
||||||
|
pylab.grid(True)
|
||||||
|
pylab.axhline(y=0, color='r', linestyle='--', linewidth=1)
|
||||||
|
|
||||||
|
N = len(signal) // 2
|
||||||
|
pylab.axvline(x=N, color='g', linestyle='-', linewidth=2, label=f'Граница N={N}')
|
||||||
|
pylab.legend()
|
||||||
|
pylab.show()
|
||||||
|
|
||||||
|
print("График отображен.")
|
||||||
89
TEMA9/M1.py
Обычный файл
89
TEMA9/M1.py
Обычный файл
@@ -0,0 +1,89 @@
|
|||||||
|
import math
|
||||||
|
|
||||||
|
def function1(signal, N):
|
||||||
|
"""
|
||||||
|
Функция 1: рассчитывает оценки средних и дисперсий по первым N отсчетам
|
||||||
|
и по оставшейся части сигнала
|
||||||
|
|
||||||
|
Аргументы:
|
||||||
|
signal - ряд отсчетов сигнала
|
||||||
|
N - целочисленный параметр (количество первых отсчетов)
|
||||||
|
|
||||||
|
Возвращает:
|
||||||
|
M1, M2, C1, C2 - средние и дисперсии по двум частям сигнала
|
||||||
|
"""
|
||||||
|
part1 = signal[:N]
|
||||||
|
part2 = signal[N:]
|
||||||
|
|
||||||
|
if len(part1) > 0:
|
||||||
|
M1 = sum(part1) / len(part1)
|
||||||
|
sum_sq1 = 0
|
||||||
|
for x in part1:
|
||||||
|
sum_sq1 += (x - M1) ** 2
|
||||||
|
C1 = sum_sq1 / (len(part1) - 1) if len(part1) > 1 else 0
|
||||||
|
else:
|
||||||
|
M1 = 0
|
||||||
|
C1 = 0
|
||||||
|
|
||||||
|
if len(part2) > 0:
|
||||||
|
M2 = sum(part2) / len(part2)
|
||||||
|
sum_sq2 = 0
|
||||||
|
for x in part2:
|
||||||
|
sum_sq2 += (x - M2) ** 2
|
||||||
|
C2 = sum_sq2 / (len(part2) - 1) if len(part2) > 1 else 0
|
||||||
|
else:
|
||||||
|
M2 = 0
|
||||||
|
C2 = 0
|
||||||
|
|
||||||
|
return M1, M2, C1, C2
|
||||||
|
|
||||||
|
|
||||||
|
def function2(filename):
|
||||||
|
"""
|
||||||
|
Функция 2: читает данные из файла, передает их в функцию 1,
|
||||||
|
отображает результаты и рассчитывает статистики t и F
|
||||||
|
|
||||||
|
Аргумент:
|
||||||
|
filename - имя текстового файла с отсчетами сигнала
|
||||||
|
|
||||||
|
Возвращает:
|
||||||
|
signal - прочитанный сигнал
|
||||||
|
t, F - рассчитанные статистики
|
||||||
|
M1, M2, C1, C2 - промежуточные результаты
|
||||||
|
"""
|
||||||
|
file = open(filename, 'r')
|
||||||
|
content = file.read()
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
elements = content.replace(',', ' ').split()
|
||||||
|
signal = []
|
||||||
|
for elem in elements:
|
||||||
|
if elem.strip():
|
||||||
|
signal.append(float(elem))
|
||||||
|
|
||||||
|
NN = len(signal)
|
||||||
|
N = NN // 2
|
||||||
|
print(f"Параметр N (половина длины) = {N}")
|
||||||
|
|
||||||
|
M1, M2, C1, C2 = function1(signal, N)
|
||||||
|
|
||||||
|
print(f"Первые {N} отсчетов: M1 = {M1:.4f}, C1 = {C1:.4f}")
|
||||||
|
print(f"Оставшиеся {NN-N} отсчетов: M2 = {M2:.4f}, C2 = {C2:.4f}")
|
||||||
|
|
||||||
|
if NN > 2 and (C1 * N + C2 * (NN - N)) > 0:
|
||||||
|
numerator = abs(M1 - M2)
|
||||||
|
denominator = math.sqrt((C1 * N + C2 * (NN - N)) / (NN - 2))
|
||||||
|
t = numerator / denominator if denominator != 0 else 0
|
||||||
|
else:
|
||||||
|
t = 0
|
||||||
|
print("Недостаточно данных для расчета t")
|
||||||
|
|
||||||
|
if C2 > 0 and C1 > 0:
|
||||||
|
F = max(C1, C2) / min(C1, C2)
|
||||||
|
else:
|
||||||
|
F = 1
|
||||||
|
|
||||||
|
print(f"Статистика t = {t:.6f}")
|
||||||
|
print(f"Статистика F = {F:.6f}")
|
||||||
|
|
||||||
|
return signal, t, F, M1, M2, C1, C2
|
||||||
55
TEMA9/M2.py
Обычный файл
55
TEMA9/M2.py
Обычный файл
@@ -0,0 +1,55 @@
|
|||||||
|
import os
|
||||||
|
import M1
|
||||||
|
|
||||||
|
def process_signal():
|
||||||
|
"""
|
||||||
|
Основная функция модуля M2
|
||||||
|
Запрашивает имя файла, проверяет его существование,
|
||||||
|
вызывает функцию2 из M1 и записывает результаты в файл Res101.txt
|
||||||
|
"""
|
||||||
|
# Запрос имени файла с проверкой существования
|
||||||
|
while True:
|
||||||
|
filename = input("\nВведите имя файла с данными: ").strip()
|
||||||
|
|
||||||
|
if os.path.exists(filename):
|
||||||
|
print(f"Файл '{filename}' найден")
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
print(f"Файл '{filename}' не существует. Повторите ввод.")
|
||||||
|
# Вызов функции 2 из модуля M1
|
||||||
|
signal, t_stat, F_stat, mean1, mean2, var1, var2 = M1.function2(filename)
|
||||||
|
|
||||||
|
print("Отсчеты сигнала:")
|
||||||
|
for i in range(len(signal)):
|
||||||
|
print(f" {i:2d}: {signal[i]:8.2f}")
|
||||||
|
print("\n--- Анализ результатов ---")
|
||||||
|
messages = []
|
||||||
|
if t_stat > 2:
|
||||||
|
msg_t = "Сигнал сильно меняется"
|
||||||
|
print(f"t={t_stat:.4f} > 2: {msg_t}")
|
||||||
|
else:
|
||||||
|
msg_t = "Сигнал заметно не меняется"
|
||||||
|
print(f"t={t_stat:.4f} ≤ 2: {msg_t}")
|
||||||
|
messages.append(msg_t)
|
||||||
|
|
||||||
|
if F_stat > 4:
|
||||||
|
msg_F = "Разброс сигнала сильно меняется"
|
||||||
|
print(f"F={F_stat:.4f} > 4: {msg_F}")
|
||||||
|
else:
|
||||||
|
msg_F = "Разброс сигнала заметно не меняется"
|
||||||
|
print(f"F={F_stat:.4f} ≤ 4: {msg_F}")
|
||||||
|
messages.append(msg_F)
|
||||||
|
res_filename = "Res101.txt"
|
||||||
|
file = open(res_filename, 'w', encoding='utf-8')
|
||||||
|
file.write(f"Исходный файл: {filename}\n")
|
||||||
|
file.write(f"Количество отсчетов: {len(signal)}\n")
|
||||||
|
file.write(f"t-статистика: {t_stat:.6f}\n")
|
||||||
|
file.write(f"F-статистика: {F_stat:.6f}\n")
|
||||||
|
file.write("-"*40 + "\n")
|
||||||
|
file.write(f"Вывод 1: {msg_t}\n")
|
||||||
|
file.write(f"Вывод 2: {msg_F}\n")
|
||||||
|
file.close()
|
||||||
|
|
||||||
|
print(f"\nРезультаты сохранены в файл '{res_filename}'")
|
||||||
|
|
||||||
|
return signal, t_stat, F_stat
|
||||||
7
TEMA9/Res101.txt
Обычный файл
7
TEMA9/Res101.txt
Обычный файл
@@ -0,0 +1,7 @@
|
|||||||
|
Исходный файл: covid_jan2022.txt
|
||||||
|
Количество отсчетов: 20
|
||||||
|
t-статистика: 1.480665
|
||||||
|
F-статистика: 6.441532
|
||||||
|
----------------------------------------
|
||||||
|
Вывод 1: Сигнал заметно не меняется
|
||||||
|
Вывод 2: Разброс сигнала сильно меняется
|
||||||
20
TEMA9/covid_jan2022.txt
Обычный файл
20
TEMA9/covid_jan2022.txt
Обычный файл
@@ -0,0 +1,20 @@
|
|||||||
|
-440
|
||||||
|
-131
|
||||||
|
-456
|
||||||
|
1419
|
||||||
|
-167
|
||||||
|
-322
|
||||||
|
-416
|
||||||
|
1695
|
||||||
|
421
|
||||||
|
3209
|
||||||
|
2665
|
||||||
|
3359
|
||||||
|
2051
|
||||||
|
1496
|
||||||
|
526
|
||||||
|
2647
|
||||||
|
4951
|
||||||
|
10663
|
||||||
|
7699
|
||||||
|
5993
|
||||||
0
TEMA9/test.md
Обычный файл
0
TEMA9/test.md
Обычный файл
Ссылка в новой задаче
Block a user