Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Python для экспертов
  • » Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы [RSS Feed]

#1 Дек. 6, 2019 20:27:31

Bull787
Зарегистрирован: 2019-12-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

Добрый вечер. Выручайте, нужна ваша помощь.
Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк, заканчивающиеся строкой, содержащей только строку ‘end’. Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции I,j равен произведению элементов первой матрицы на позициях (I-1, j), (I+1, j), (I, j-1), (I, j+1).
У крайних символов соседний элемент находится с противоположной стороны матрицы.
В случае одной строки/столбца элемент сам себе является соседом по соответствующему направлению.

Должно получиться примерно так:

5 7 4 1
7 9 6 3
2 6 7 9
end

98 1080 168 540
270 1764 756 378
1890 882 1296 42

2
end

2
end

Офлайн

#2 Дек. 7, 2019 05:44:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9849
Репутация: +  853  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

Сам что-нибудь сделал? Хотя бы ввод матрицы и вывод матрицы сделай, без преобразований.



Офлайн

#3 Дек. 7, 2019 09:16:29

Bull787
Зарегистрирован: 2019-12-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

py.user.next
Сам что-нибудь сделал? Хотя бы ввод матрицы и вывод матрицы сделай, без преобразований.
Да, у меня есть код, но здесь элемент в позиции i,j равен СУММЕ ЭЛЕМЕНТОВ первой матрицы на позициях (I-1, j), (I+1, j), (I, j-1), (I, j+1)., а мне нужно, чтобы элемент в позиции i,j был равен ПРОИЗВЕДЕНИЮ элементов первой матрицы на позициях (I-1, j), (I+1, j), (I, j-1), (I, j+1). Прошу пожалуйста вас помочь.
Вот сам код.
 n = ''
m = []
while True:
    n = str(input()) 
    if n == 'end':
        break
    m.append([int(s) for s in n.split()]) 
li, lj = len(m), len(m[0])
new = [[sum([m[i-1][j], m[(i+1)%li][j], m[i][j-1], m[i][(j+1)%lj]]) for j in range(lj)] for i in range(li)]
for i in range (li):
    for j in range (lj):
        print(new[i][j], end =' ')
    print()

Офлайн

#4 Дек. 8, 2019 02:00:19

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9849
Репутация: +  853  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

Найти произведение элементов списка можно так

  
>>> import functools
>>> import operator
>>> 
>>> lst = [1, 2, 3, 4, 5]
>>> 
>>> out = functools.reduce(operator.mul, lst)
>>> out
120
>>>



Отредактировано py.user.next (Дек. 8, 2019 02:00:31)

Офлайн

#5 Дек. 8, 2019 13:19:54

Vladimirv
Зарегистрирован: 2013-03-22
Сообщения: 108
Репутация: +  7  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

Bull787
Классный код, только вывод матрицы подкачал:
 for lst in new:
    print(*lst)
И ещё:
 n = '' # не нужная строка
n = str(input())  # str - не нужен, там и так строка

Отредактировано Vladimirv (Дек. 8, 2019 13:24:30)

Офлайн

#6 Дек. 8, 2019 13:22:18

Bull787
Зарегистрирован: 2019-12-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

py.user.next
Найти произведение элементов списка можно так
Большое спасибо

Офлайн

#7 Дек. 8, 2019 13:23:30

Bull787
Зарегистрирован: 2019-12-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

Vladimirv
Большое спасибо

Офлайн

#8 Дек. 8, 2019 15:46:51

Vladimirv
Зарегистрирован: 2013-03-22
Сообщения: 108
Репутация: +  7  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

Bull787
Держи)
 new = [[m[i-1][j] * m[(i+1)%li][j] * m[i][j-1] * m[i][(j+1)%lj] for j in range(lj)] for i in range(li)]

Отредактировано Vladimirv (Дек. 8, 2019 15:48:03)

Офлайн

#9 Дек. 8, 2019 16:03:36

Bull787
Зарегистрирован: 2019-12-06
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

Vladimirv
БОЛЬШОЕ спасибо вам

Офлайн

  • Начало
  • » Python для экспертов
  • » Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version