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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2011, 19:28   #1
MyLastHit
Очень суровый
Участник клуба
 
Аватар для MyLastHit
 
Регистрация: 17.12.2009
Сообщений: 1,988
По умолчанию Алгоритм преобразования

Здравствуйте, подскажите алгоритм преобразования матрицы в матрицу столбец, по вот такому правилу:


Я вижу некую зависимость, например то, что сумма коэф. при каждом "а" справа в указаной строке - постоянная. Есть еще пару догадок, но не могу алгоритм придумать, как ни стараюсь... Уже второй день.

Единственное что более менее путное пришло в голову это разбить матрицу на множество квадратных, и считать суммы их побочных диагоналей. Но и тут проблема...
пытался комбинаторно описать, тоже не получается.
Ненавижу быть как все, но люблю, чтобы все были как я.

Последний раз редактировалось MyLastHit; 25.04.2011 в 19:38.
MyLastHit вне форума Ответить с цитированием
Старый 25.04.2011, 22:34   #2
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

Цитата:
Сообщение от MyLastHit Посмотреть сообщение
...подскажите алгоритм...
Код:
#!/usr/bin/python
# -*- coding: cp1251 -*-

from numpy import array, reshape, zeros

a = array( [1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 4, 3], dtype = int )
# Eventual combinations of nColsA and nRowsA for testing: 1x12 ; 2x6 ; 3x4 ; 4x3 ; 6x2 ; 12x1
nColsA = 3
nRowsA = 4
a = a.reshape(nRowsA,nColsA)
print a

def SqewSum( row0, col0 ):
    s = 0
    i = row0 ; j = col0
    while i >= 0 and j <= nColsA-1:
        s += a[i][j]
        i -= 1
        j += 1
    return s


def main():

    b = zeros( nColsA+nRowsA-1, dtype = int )
    jB = 0

    col = nColsA-1
    while col >= 0:
        b[jB] = SqewSum( nRowsA-1, col )
        jB += 1
        col -= 1

    row = nRowsA-2
    while row >= 0:
        b[jB] = SqewSum( row, 0 )
        jB += 1
        row -= 1

    print b


main()

#
Только здесь индексация с 0.
Vago вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм преобразования элементов массива Alexander4321 Помощь студентам 1 28.11.2010 15:55
Параллельный алгоритм быстрого преобразования Фурье (fft) для C# oleeg Помощь студентам 6 19.02.2010 13:19
Определите алгоритм преобразования и напишите программу 0001 Помощь студентам 6 26.01.2010 13:31
Алгоритм преобразования дорожной сети в граф, для поиска пути motorway PHP 7 02.10.2009 18:53
алгоритм преобразования сферических координат в декартовые. графическая иллюстрация. Денис 008 Мультимедиа в Delphi 4 05.08.2008 22:21