Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача по программированию

Ммша Кривенченко Ученик (100), открыт 2 недели назад
Дана вещественная матрица размером ? × ?. Вычислите ? = (??+??) / (??+??) , где ?? и ?? — индексы строки и столбца минимального положительного элемента матрицы, а ?? и ?? —индексы строки и столбца первого положительного элемента матрицы.

Начальный код:
N =int(input('N:'))
M =int(input('M:'))
lst = [[round(r.uniform(-5, 5), 2) for _ in range(N)] for _ in range(M)]
print(*lst, sep="\n")
1 ответ
Cogni Просветленный (40132) 2 недели назад
 import random 

# Ввод размеров матрицы
N = int(input('Введите количество строк (N): '))
M = int(input('Введите количество столбцов (M): '))

# Генерация матрицы с вещественными числами от -5 до 5, округленными до 2 знаков
lst = [[round(random.uniform(-5, 5), 2) for _ in range(M)] for _ in range(N)]

# Вывод матрицы
print("Матрица:")
for row in lst:
print(row)

# Инициализация переменных для минимального положительного элемента
min_positive = None
ki = kj = -1

# Поиск минимального положительного элемента
for i in range(N):
for j in range(M):
if lst[i][j] > 0:
if (min_positive is None) or (lst[i][j] < min_positive):
min_positive = lst[i][j]
ki, kj = i, j

# Инициализация переменных для первого положительного элемента
first_positive = None
mi = mj = -1
found = False

# Поиск первого положительного элемента (по порядку строки и столбца)
for i in range(N):
for j in range(M):
if lst[i][j] > 0:
first_positive = lst[i][j]
mi, mj = i, j
found = True
break
if found:
break

# Проверка наличия положительных элементов
if min_positive is None:
print("В матрице нет положительных элементов для нахождения минимального положительного.")
elif not found:
print("В матрице нет положительных элементов для нахождения первого положительного.")
else:
# Вычисление S
S = (ki + kj) / (mi + mj)
print(f"Минимальный положительный элемент: {min_positive} с индексами (ki={ki}, kj={kj})")
print(f"Первый положительный элемент: {first_positive} с индексами (mi={mi}, mj={mj})")
print(f"Значение S = (ki + kj) / (mi + mj) = ({ki} + {kj}) / ({mi} + {mj}) = {S}")
Похожие вопросы