Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2019, 13:53   #1
Хумус
Новичок
Джуниор
 
Регистрация: 14.05.2019
Сообщений: 2
По умолчанию Вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен произведению элементов первой матрицы

Добрый вечер. Выручайте, нужна ваша помощь.
Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк, заканчивающиеся строкой, содержащей только строку ‘end’. Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции 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)., а мне нужно, чтобы элемент в позиции 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()
Должно получиться примерно так:

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
Хумус вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal Матрицы - элемент bij которой равен сумме элементов данной матрицы расположенных в области, определяемой индексами i,j так, как показано на рисунке users1 Помощь студентам 0 12.01.2017 06:04
[VB 2010]: Выбрать максимальный элемент в третьей строке, составить новую матрицу, каждый элемент которой равен соответствующему элементу матрицы Z, делённому на этот максимум. Fake taxi Помощь студентам 0 17.12.2016 12:23
Получите целочисленную квадратную матрицу того же порядка, в которой элемент равен единице Makavelli Microsoft Office Word 17 19.12.2011 19:07
Вычислить элементы массива B, каждый из которых равен скалярному произведению строки матрицы G на массив X (Паскаль) Roman1992 Помощь студентам 2 22.06.2011 00:28