
Помогите написать программу Python 1. Квадратная матрица, симметричная относительно главной
диагонали, задана верхним треугольником в виде одномерного массива. Восстановить исходную матрицу и напечатать по строкам. 2. Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, просуммировав элементы одномерного массива. Преобразовать исходную матрицу по правилу: четные строки разделить на полученное значение, нечетные оставить без изменения.

Ответы на вопрос

Ответ:
1.
matrix = [[]] - какая-то матрица
for i in range(len(matrix)):
----matrix[i][j] = int(input())
----for j in range(i + 1, len(matrix)):
--------matrix[i][j] = int(input())
--------matrix[j][i] = matrix[i][j]
print(matrix)
2.
matrix = [[]] - какая-то матрица
диагональ = []
for i in range(len(matrix)):
----диагональ.append(matrix[i][i])
print(диагональ)
print(sum(диагональ))
или
summary = 0
for i in диагональ:
----summary += i
print(summary)
for i in range(len(matrix)):
----if i+1 % 2 == 0:
--------for j in range(len(matrix[i])):
------------matrix[i][j] /= summary
print(matrix)



Для первой части задачи, где требуется восстановить исходную матрицу из одномерного массива, можно использовать следующий код:
python# Восстановление матрицы из одномерного массива верхнего треугольника
def restore_matrix(arr):
n = int((1 + (1 + 8 * len(arr)) ** 0.5) / 2) # Определяем размерность матрицы
matrix = [[0] * n for _ in range(n)]
k = 0
for i in range(n):
for j in range(i, n):
matrix[i][j] = arr[k]
matrix[j][i] = arr[k]
k += 1
for row in matrix:
print(' '.join(map(str, row)))
# Пример использования
arr = [1, 2, 3, 4, 5, 6]
restore_matrix(arr)
Для второй части задачи, где требуется найти след матрицы и преобразовать исходную матрицу в соответствии с заданными правилами, можно использовать следующий код:
python# Формирование массива диагональных элементов и преобразование матрицы
def transform_matrix(matrix):
n = len(matrix)
diagonal_array = [matrix[i][i] for i in range(n)]
trace = sum(diagonal_array) # Находим след матрицы
for i in range(n):
if i % 2 == 0: # Четные строки
divisor = trace
for j in range(n):
matrix[i][j] /= divisor
# Нечетные строки оставляем без изменения
return matrix
# Пример использования
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transformed_matrix = transform_matrix(matrix)
for row in transformed_matrix:
print(' '.join(map(str, row)))
Обратите внимание, что в обоих примерах я предоставил примеры использования с некоторыми тестовыми данными. Вы можете заменить их на свои собственные данные.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili