Предмет: Информатика, автор: ilacernov323

Задачи:

№1

Дан двумерный список (матрица) : N*M элементов. Найти в матрице сумму всех элементов в четных столбцах.

№2

Дан двумерный список (матрица) : N*N элементов. Найти в матрице сумму элементов главной и побочной диагонали, а также их абсолютную разность.

№3

Дан двумерный список (матрица) : N*M элементов. Поменять в матрице столбец с самым большим по значению элементом на столбец с самым маленьким элементов. Вывести результат/


PYTHON, пожалуйста, помогите, не понимаю этого


bettapy: Задача 2 - Что имеется ввиду под побочной диагональю и абсолютной разностью?
bettapy: Лять, админ, муд... я же не сохранил решение тех задач
ilacernov323: та блин
ilacernov323: реши еще раз, плз)
bettapy: Я не могу решить третью, из-за этого моё решение удаляют -_-
bettapy: Хотя ладно

Ответы

Автор ответа: bettapy
0

# Задача 1

n = int(input())

m = int(input())

arr = [[int(input()) for _ in range(m)] for _ in range(n)]

res = 0

for i in arr:

   for j in range(len(i)):

       if j % 2 != 0:

           res += i[j]

print(res)

# Задача 2

n = int(input())

arr = [[int(input()) for _ in range(n)] for _ in range(n)]

diag_1 = 0

diag_2 = 0

for i in range(n):

   diag_1 += arr[i][i]

   diag_2 += arr[i][n - i - 1]

print(diag_1 + diag_2)

print(abs(diag_1 - diag_2))

# Задача 3

n = int(input())

m = int(input())

from random import randint

arr = [[int(randint(1, 10)) for _ in range(m)] for _ in range(n)]

for i in arr:

   print(i)

print()

results = {}

for i in arr:  # Добавление элементов в словарь

   for j in range(len(i)):

       if j not in results:

           results[j] = i[j]

       else:

           results[j] += i[j]

arr_max = 0, 0

arr_min = 0, 999999

for key, val in results.items():  # Нахождение наибольшего и наименьшего элемента

   if val > arr_max[1]:

       arr_max = key, val

   if val < arr_min[1]:

       arr_min = key, val

max_values = [[i[j] for j in range(len(i)) if j == arr_max[0]][0] for i in arr]

min_values = [[i[j] for j in range(len(i)) if j == arr_min[0]][0] for i in arr]

for i in arr:

   for j in range(len(i)):

       if j == arr_min[0]:

           i[j] = max_values[0]

           del max_values[0]

       elif j == arr_max[0]:

           i[j] = min_values[0]

           del min_values[0]

for i in arr:

   print(i)

Приложения:

bettapy: В общем вот. У третьей задачи решение просто отвратительное, если это увидит нормальный программист - мне прилетит в лицо, но время у меня 3:25, голова соображает не особо хорошо. В .txt файле находятся все эти решения
Похожие вопросы
Предмет: Русский язык, автор: вугар5