schoolМатематика
verifiedРешено AI
Решение задач на Python: 7, 8 и 9 варианты
help_outlineУсловие задачи
Реши задачу: На примере 0 варианта сделать так же на Пейтон для след вариантов Реши задачу: Первый, второй и третий вариант

lightbulbКраткий ответ
Представлены решения задач на Python для вариантов 7, 8 и 9. Включают восстановление симметричной матрицы и другие задания с подробным кодом.
Подробное решение
Ниже представлены решения для вариантов 7, 8 и 9. Код оформлен максимально просто для переписывания в тетрадь.
Вариант 7
Задание 1. Восстановить симметричную матрицу из одномерного массива (верхнего треугольника).
n = int(input('Введите размерность матрицы n: '))
# Количество элементов в верхнем треугольнике: n*(n+1)/2
count = n * (n + 1) // 2
print('Введите', count, 'элементов треугольника:')
v = []
for i in range(count):
v.append(int(input()))
# Создаем пустую матрицу n x n
a = [[0]*n for i in range(n)]
k = 0
for i in range(n):
for j in range(i, n):
a[i][j] = v[k]
a[j][i] = v[k] # свойство симметрии
k += 1
print('Восстановленная матрица:')
for row in a:
print(*row)
Задание 2. Найти след матрицы (сумма диагонали) и разделить четные строки на это значение.
n = int(input('Введите n: '))
a = []
for i in range(n):
a.append([int(input()) for j in range(n)])
# Формируем массив диагональных элементов и считаем след
diag = []
sled = 0
for i in range(n):
diag.append(a[i][i])
sled += a[i][i]
print('След матрицы:', sled)
# Преобразование (четные строки по счету: 0, 2, 4... или 2, 4, 6...)
# В программировании обычно считаем от 0 (индекс i)
for i in range(n):
if i % 2 == 0: # если индекс строки четный
for j in range(n):
a[i][j] = a[i][j] / sled
print('Результат:')
for row in a:
print(*row)
Вариант 8
Задание 1. Разделить элементы k-й строки на диагональный элемент этой строки.
n = int(input('Введите n: '))
k = int(input('Введите номер строки k (от 0): '))
a = []
for i in range(n):
a.append([float(input()) for j in range(n)])
d_elem = a[k][k]
for j in range(n):
a[k][j] = a[k][j] / d_elem
print('Результат:')
for row in a:
print(*row)
Задание 2. Получить транспонированную матрицу.
n = int(input('Введите n: '))
a = []
for i in range(n):
a.append([int(input()) for j in range(n)])
# Создаем новую матрицу для результата
res = [[0]*n for i in range(n)]
for i in range(n):
for j in range(n):
res[j][i] = a[i][j]
print('Транспонированная матрица:')
for row in res:
print(*row)
Вариант 9
Задание 1. Найти число элементов, кратных k, и наибольший из них.
n = int(input('Введите n: '))
k = int(input('Введите k: '))
a = []
for i in range(n):
a.append([int(input()) for j in range(n)])
count = 0
max_k = -1e9 # очень маленькое число
for i in range(n):
for j in range(n):
if a[i][j] % k == 0:
count += 1
if a[i][j] > max_k:
max_k = a[i][j]
print('Количество кратных k:', count)
if count > 0:
print('Наибольший из них:', max_k)
Задание 2. Найти макс. по модулю элемент и удалить его строку и столбец.
n = int(input('Введите n: '))
a = []
for i in range(n):
a.append([int(input()) for j in range(n)])
max_mod = abs(a[0][0])
r_idx, c_idx = 0, 0
for i in range(n):
for j in range(n):
if abs(a[i][j]) > max_mod:
max_mod = abs(a[i][j])
r_idx, c_idx = i, j
# Формируем новую матрицу (n-1) x (n-1)
res = []
for i in range(n):
if i == r_idx: continue # пропускаем строку
new_row = []
for j in range(n):
if j == c_idx: continue # пропускаем столбец
new_row.append(a[i][j])
res.append(new_row)
print('Матрица после удаления строки и столбца:')
for row in res:
print(*row)