Форум сайта python.su
В двумерном массиве найти сумму элементов заштрихованной области. Помогите сделать, нужно рассмотреть 2 случая, когда количество элементов в строке и столбце матрицы четные и нечетные. Если можете отправьте на мыло athlonx21997@gmail.com. Очень на Вас надеюсь, от этого зависит моя стипендия
Отредактировано cthulhu1711 (Янв. 13, 2016 16:27:37)
Прикреплённый файлы: 21344.jpg (8,0 KБ)
Офлайн
cthulhu1711
В двумерном массиве найти сумму элементов заштрихованной области. Помогите сделать, нужно рассмотреть 2 случая, когда количество элементов в строке и столбце матрицы четные и нечетные. Если можете отправьте на мыло athlonx21997@gmail.com. Очень на Вас надеюсь, от этого зависит моя стипендия
Офлайн
Интереса ради я попробовал применить нестандартных подход, и воспользоваться библиотекой символьных вычислений sympy,а именно его геометрическими объектами. Но получилось не совсем то что надо. Суть подхода по размерам матрицы сделать квадрат (тот что заштрихованный) и смотреть будут ли индексы матрицы попадать в его плоскость. Судя по выводимой псевдографике получается не совсем то. Но сам подходи мне показался любопытным поэтому код выкладываю.
from __future__ import division from sympy import Point, Polygon import numpy as np a = np.ones((5, 5)) square = Polygon(Point(a.shape[0]/2, 0), Point(a.shape[0], a.shape[1]/2), Point(a.shape[0]/2, a.shape[1]), Point(0, a.shape[1]/2)) summa = 0 r = [] for row_index,row in enumerate(a): for col_index, value in enumerate(row): if square.encloses_point(Point(row_index, col_index)): summa += value r.append('#') print('Element {:3d} x {:3d} with value {} is in square'.format(row_index, col_index, value)) else: print('Element {:3d} x {:3d} with value {} dropped'.format(row_index, col_index, value)) r.append('=') r.append('\n') print('Result = {}'.format(summa)) print(''.join(r))
=====
==##=
=####
=####
==##=
Офлайн