Pavel 2 месяцев назад
Родитель 0e0029a430
Сommit 9c0613275b

@ -0,0 +1,9 @@
import random
import math
def logistic_tuple(N):
logistic = lambda X: 1.0 / (1.0 + math.exp(X)) # Анонимная функция — логистическая
random_list = [random.uniform(-20, 68) for _ in range(N)] #список из N случайных чисел в диапазоне [-20, 68]
result_tuple = tuple(logistic(x) for x in random_list)
return result_tuple

@ -0,0 +1,8 @@
from M1 import logistic_tuple
N = int(input("Введите число элементов: "))
result = logistic_tuple(N)
print("\nРезультат:")
print(result)
if len(result) > 5:
print("\nПервые 5 значений:")
print(result[:5])

@ -0,0 +1,28 @@
# noise_gen.py
# Тема 8. Генератор равномерного белого шума
import random
def generate_uniform_noise(min_val, max_val, num_samples, filename):
"""
Генерирует последовательность равномерно распределённого белого шума.
Аргументы:
min_val (float): нижняя граница диапазона
max_val (float): верхняя граница диапазона
num_samples (int): количество отсчётов
filename (str): имя текстового файла для записи
Возвращает:
list: список сгенерированных чисел
"""
# Генерация списка
noise = [random.uniform(min_val, max_val) for _ in range(num_samples)]
# Запись в файл: по 3 элемента в строке, через запятую
with open(filename, 'w', encoding='utf-8') as f:
for i in range(0, len(noise), 3):
line = noise[i:i+3]
f.write(','.join(f"{x:.6f}" for x in line) + '\n')
return noise

@ -0,0 +1,39 @@
# test_noise.py
# Тема 8. Тестирование генератора шума
from Mod13 import generate_uniform_noise
def main():
print("Генерация равномерного белого шума")
# Ввод исходных данных
try:
min_val = float(input("Введите нижнюю границу диапазона (min_val): "))
max_val = float(input("Введите верхнюю границу диапазона (max_val): "))
if min_val >= max_val:
print("Ошибка: min_val должно быть меньше max_val")
return
num_samples = int(input("Введите число отсчётов (num_samples): "))
if num_samples <= 0:
print("Ошибка: число отсчётов должно быть положительным")
return
filename = input("Введите имя файла для записи (например, noise.txt): ").strip()
if not filename:
filename = "noise.txt"
except ValueError:
print("Ошибка: введены некорректные данные")
return
# Вызов функции
noise_list = generate_uniform_noise(min_val, max_val, num_samples, filename)
# Отображение результатов
print(f"\nСгенерировано {len(noise_list)} отсчётов.")
print(f"Первые 10 значений: {[round(x, 4) for x in noise_list[:10]]}")
print(f"Результат записан в файл: {filename}")
if __name__ == "__main__":
main()

@ -0,0 +1,39 @@
# test_noise.py
# Тема 8. Тестирование генератора шума
from Mod1(3) import generate_uniform_noise
def main():
print("Генерация равномерного белого шума")
# Ввод исходных данных
try:
min_val = float(input("Введите нижнюю границу диапазона (min_val): "))
max_val = float(input("Введите верхнюю границу диапазона (max_val): "))
if min_val >= max_val:
print("Ошибка: min_val должно быть меньше max_val")
return
num_samples = int(input("Введите число отсчётов (num_samples): "))
if num_samples <= 0:
print("Ошибка: число отсчётов должно быть положительным")
return
filename = input("Введите имя файла для записи (например, noise.txt): ").strip()
if not filename:
filename = "noise.txt"
except ValueError:
print("Ошибка: введены некорректные данные")
return
# Вызов функции
noise_list = generate_uniform_noise(min_val, max_val, num_samples, filename)
# Отображение результатов
print(f"\nСгенерировано {len(noise_list)} отсчётов.")
print(f"Первые 10 значений: {[round(x, 4) for x in noise_list[:10]]}")
print(f"Результат записан в файл: {filename}")
if __name__ == "__main__":
main()

@ -0,0 +1,4 @@
-2.010928,1.714263,1.137040
1.024900,0.097800,1.820752
-1.874113,-0.357603,-4.461175
-0.753859

@ -0,0 +1,43 @@
# Индивидуальное контрольное задание по теме 8 вариант 20
Анисенков Павел, А-01-23
## Задание
Разработайте функцию с одним аргументом – числом элементов. Функция должна включать анонимную функцию с аргументом Х, вычисляющую от заданного входного числового аргу-мента X значение логистической функции: 1/(1+exp(X)). Общая функция должна создавать список с заданным в аргументе числом случайных элементов, равномерно распределенных в диапазоне от -20 до +68. После этого она должна формировать кортеж с элементами – значе-ниями логистической функции от соответствующих элементов списка. Этот кортеж должен возвращаться, как результат функции. Проверить функцию на примере.
## Решение
```py
M1
import random
import math
def logistic_tuple(N):
logistic = lambda X: 1.0 / (1.0 + math.exp(X))
random_list = [random.uniform(-20, 68) for _ in range(N)]
result_tuple = tuple(logistic(x) for x in random_list)
return result_tuple
M2
from M1 import logistic_tuple
N = int(input("Введите число элементов: "))
result = logistic_tuple(N)
print("\nРезультат:")
print(result)
if len(result) > 5:
print("\nПервые 5 значений:")
print(result[:5])
```
Вывод:
```py
Введите число элементов: 5
Результат:
(1.7003103585087036e-25, 8.372020498532923e-12, 0.013308504481261372, 5.733447989484467e-14, 2.048829680249727e-09)
```
Загрузка…
Отмена
Сохранить