Решение модуля 4.5 Поколение Python: для продвинутых

Ответы и решения урока 4.5(Матрицы. Часть 2) на курс «Поколение Python: курс для продвинутых»

На вход программе подаются два натуральных числа n и m — количество строк и столбцов в матрице. Создайте матрицу mult размером n×m и заполните её таблицей умножения по формуле mult[i][j] = i * j.

n, m = int(input()), int(input())

for i in range(n):
    for j in range(m):
        if j != m - 1:
            print(str((i * j)).ljust(2), end=' ')
        else:
            print(str((i * j)), end='')
    print()

На вход программе подаются два натуральных числа n и m — количество строк и столбцов в матрице, затем n строк по m целых чисел в каждой, отделенных символом пробела.

Напишите программу, которая находит индексы (строку и столбец) первого вхождения максимального элемента.

n, m = int(input()), int(input())
matrix = [[int(i) for i in input().split()] for _ in range(n)]
row, col = 0, 0
    
for i in range(n):
    for j in range(m):
        if matrix[i][j] > matrix[row][col]:
            row,col = i, j
            
print(row, col)

Напишите программу, которая меняет местами столбцы в матрице.

n, m = int(input()), int(input())
matrix = [[int(i) for i in input().split()] for i in range(n)]
change = [int(i) for i in input().split()]
a, b = change[0], change[1]

for i in range(n):
    matrix[i][a], matrix[i][b] = matrix[i][b], matrix[i][a]

for row in matrix:
    print(*row)

Напишите программу, которая проверяет симметричность квадратной матрицы относительно главной диагонали.

n = int(input())
matrix = [[int(i) for i in input().split()] for j in range(n)]
flag = True

for i in range(n):
    for j in range(n):
        if matrix[i][j] != matrix[j][i]:
            flag = False
    if flag == False:
        print('NO')
        break
else:
    print('YES')

Дана квадратная матрица чисел. Напишите программу, которая меняет местами элементы, стоящие на главной и побочной диагонали, при этом каждый элемент должен остаться в том же столбце (то есть в каждом столбце нужно поменять местами элемент на главной диагонали и на побочной диагонали).

n = int(input())
matr = [[int(i) for i in input().split()] for _ in range(n)]

for i in range(n):
    for j in range(n):
        if (i == j) or (i == n - 1 - j):
            print(matr[n - 1 - i][j], end=' ')
        else:
            print(matr[i][j], end=' ')
    print()

Дана квадратная матрица чисел. Напишите программу, которая зеркально отображает её элементы относительно горизонтальной оси симметрии.

n = int(input())
matrix = [input().split() for _ in range(n)]

for i in range(n // 2):
    matrix[i], matrix[n - i - 1] = matrix[n - i - 1], matrix[i]
for row in matrix:
    print(*row)

Напишите программу, которая поворачивает квадратную матрицу чисел на 90∘ по часовой стрелке.

n=int(input())
matrix = []

for i in range(n):
    temp = [int(num) for num in input().split()]
    matrix.append(temp)

for j in range(n):
    for i in range(n-1, -1, -1):
        print(matrix[i][j], end = ' ')
    print()

На шахматной доске 8×8 стоит конь. Напишите программу, которая отмечает положение коня на доске и все клетки, которые бьет конь. Клетку, где стоит конь, отметьте английской буквой N, клетки, которые бьет конь, отметьте символами *, остальные клетки заполните точками.

col, row = input().strip()
coor_col = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5, 'g': 6, 'h': 7}
coor_row = {'1': 7, '2': 6, '3': 5, '4': 4, '5': 3, '6': 2, '7': 1, '8': 0}
arr = [["N" if [i, j] == [coor_row[row], coor_col[col]] else '.' for j in range(8)] for i in range(8)]
for i in range(8):
    for j in range(8):
        if (coor_row[row] - i) * (coor_col[col] - j) in [-2, 2]: arr[i][j] = "*" 
for line in arr:
    print(*line, sep = ' ')

Магическим квадратом порядка nn называется квадратная таблица размера n×n, составленная из всех чисел 1,2,3,…,nтак, что суммы по каждому столбцу, каждой строке и каждой из двух диагоналей равны между собой. Напишите программу, которая проверяет, является ли заданная квадратная матрица магическим квадратом.

n = int(input())                                                 # размерность матрицы
matrix = [[int(i) for i in input().split()] for i in range(n)]   # задаем матрицу
matrix_90 = [[[] for i in range(n)] for i in range(n)]           # матр., повернутая на 90гр
count = 0                  #  счетчик для подсч. равенства строк начальной и повернутой матрицы
diag_main = []             #  список элементов главной диагонали
diag = []                  #  список элементов побочной диагонали
lst = []                   #  список элементов матрицы для исключения повторений и проверки от 1 до 1**n

for i in range(n):
    diag_main.append(matrix[i][i])              #  заполняем список элем-ми гл. диаг.
    diag.append(matrix[i][n - i - 1])           #  заполняем список элем-ми побочн. диаг.
    for j in range(n):
        matrix_90[i][j] = matrix[n - j - 1][i]  #  заполняем повернутую на 90 матрицу
        if matrix[i][j] not in lst:
            lst.append(matrix[i][j])            # заполняем список учета всех элементов


for i in range(n):
    if sum(matrix[i]) == sum(matrix_90[i]) == sum(diag_main) == sum(diag):
        count += 1

print('YES' if count == n and len(lst) == n ** 2 and 0 not in lst else 'NO')

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

3 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
liony
liony
6 месяцев назад

def print_chessboard(knight_pos):
   chessboard = [[‘.’ for _ in range(8)] for _ in range(8)]

   col = ord(knight_pos[0]) — ord(‘a’)
   row = 8 — int(knight_pos[1])

   chessboard[row][col] = ‘N’

   moves = [(-2, -1), (-1, -2), (1, -2), (2, -1),
            (2, 1), (1, 2), (-1, 2), (-2, 1)]

   for move in moves:
       new_row = row + move[0]
       new_col = col + move[1]
       if 0 <= new_row < 8 and 0 <= new_col < 8:
           chessboard[new_row][new_col] = ‘*’

   for row in chessboard:
       print(‘ ‘.join(row))

knight_position = input()
print_chessboard(knight_position)

миша
миша
11 месяцев назад

в 9 ошибка в 17 тесте

3
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x