Проверьте, является ли двумерный массив симметричным относительно главной диагонали. Главная диагональ — та, которая идёт из левого верхнего угла двумерного массива в правый нижний.
Входные данные
Программа получает на вход число n<100, являющееся числом строк и столбцов в массиве. Далее во входном потоке идет n строк по n чисел, являющихся элементами массива.
Выходные данные
Программа должна выводить слово Yes для симметричного массива и слово No для несимметричного.
Моё решение:
matrix = []
p = []
k = []
n = int(input())
for i in range:
matrix.append(list(map(int, input().split())))
for i in range:
for j in range:
if i < j:
p.append(matrix[j])
if i > j:
k.append(matrix[j])
if k == p:
print('Yes'
else:
print('No'
Короче моё решение не проходит последний тест и я не понимаю почему
GPT
Проблема в вашем коде заключается в том, что он не проверяет симметричность относительно главной диагонали правильно. Подход, который вы используете с добавлением элементов в списки p и k, не учитывает симметричность массива.
Вместо этого вы можете сравнивать элементы массива относительно главной диагонали без создания дополнительных списков. Попробуйте следующее решение: n = int(input())
matrix = []
for i in range:
matrix.append(list(map(int, input().split())))
# Проверка симметричности относительно главной диагонали
symmetric = True
for i in range:
for j in range(i, n): # Проходим только по верхнему треугольнику матрицы (включая главную диагональ)
if matrix[j] != matrix[j]:
symmetric = False
break
if not symmetric:
break
if symmetric:
print('Yes')
else:
print('No') Этот код сначала считывает входные данные и затем проверяет симметричность матрицы относительно главной диагонали, сравнивая элементы в верхнем треугольнике матрицы (включая главную диагональ). Если хотя бы одна пара элементов не соответствует симметрии, программа выводит 'No'. В противном случае выводится 'Yes'.
Тебе ж вчера уже отвечали. У меня такой вариант решения. Без ботов, чисто самостоятельно ==> m = [ [1,2,3],
[3,4,5],
[6,7,8]]
m2 = [[1,0,0],
[0,1,0],
[0,0,1]]
def f(x):
res = []
c = 0
for i in range(len(x)):
res += x[:c]
c += 1
return res
def f2(x):
res = []
c = 1
for i in range(len(x)):
res += x[c:]
c += 1
return res
for i in range:
row = list(map(int, input().split()))
matrix.append(row)
# Проверяем симметрию относительно главной диагонали
is_symmetric = True
for i in range:
for j in range(i + 1, n):
if matrix[j] != matrix[j]:
is_symmetric = False
break
if is_symmetric:
print('Yes'
else:
print('No'