Найти - Пользователи
Полная версия: Помогите написать человеческий код!
Начало » Центр помощи » Помогите написать человеческий код!
1 2
Shaman
vasyank
задача простая а вот решение у меня проситься как в 2000 годах на паскале
Да и напишите на индексах. Итераторы в эту задачу не очень.
vasyank
Shaman
ну как бы умнажение элемента на элемент както с индексами наверное не очень, хотя я только в начале пути
Shaman
vasyank
ну как бы умнажение элемента на элемент както с индексами наверное не очень
А вычетание?
Раз так настаиваете, вот заготовка:
from operator import itemgetter as ig
from itertools import imap
class MyMatrix(object):
    def __init__(self, size):
        self.data = [[0.0] * size for _ in xrange(size)]
    def row_iter(self, r):
        return iter(self.data[r])
    def col_iter(self, c):
        return imap(ig(c), self.data)
    def diag_iter(self, r, c, backw=False):
        if backw:
            bound = -1
            step = -1
        else:
            bound = len(self.data)
            step = 1
        while r != bound and c != bound:
            yield self.data[r][c]
            r += 1
            c += step
С итераторами. Наглядно, медленно, прожорливо к памяти.
vasyank
окей так а можете продемонстрировать как при помощи map() пробежаться по срезу и перемножить все его элементы выше я писал про ошибку которую мне выдает не могу разобрать что к чему
vasyank
botinag
def matrix_horizontal_max(matrix, num):
list_of_max_in_rows =
for row in matrix: # для каждой строки в матрице
list_of_mult =
for y in range(len(matrix)-num+1): # пробегаем во индексам элементов строки не доходя до конца num-1 символов, чтобы в последнее произведение попали последние num символов строки (row)

mult = 1
for x in row:
mult = mult * x

list_of_mult.append(mult) # добавляем произведение num подряд идущих элементов в список
max_of_row = max(list_of_mult) # вычисляем максимальное произведение для строки матрицы среди произведений
list_of_max_in_rows.append(max_of_row) # добавляем max_of_row в список
max_mult_in_matrix = max(list_of_max_in_rows) # вычисляем максимальное произведение среди максимумов для строк
return max_mult_in_matrix
Вобщем хотел я применить эту функцию для подcчета в диагонали (matrix<n><n> for n in range(len(matrix)) ), но начало ругаться что обьект инт() не описан. Смотрю на алгоритм и не понимаю какая ему разница вложенный список или нет.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB