Уведомления

Группа в Telegram: @pythonsu

#1 Май 20, 2015 10:36:14

marianka
Зарегистрирован: 2015-05-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

Привет, уважаемые форумчане.

Никогда не прибегала к помощи форумов, но вот в случае Пайтона хочу попросить у вас помощи.

Осваиваю данный язык, но возникли затруднения с одним из заданий. Нужно сформировать матрицу по определённому условию, и отсортировать её.

Задание выглядит так:

Получить матрицу А (m*n) образованную по соответствующему зако­ну: (i+j)/tg(j) размерностью 6x6, отсортировав столбцы по возрастанию.

Три дня возвращаюсь к этой задаче, но хоть убей - не получается…

Если кто-то поможет - куча благодарностей ^^

Офлайн

#2 Май 20, 2015 10:41:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

Результат мучений показывайте, должно же было у вас что-то родиться за три дня размышлений.



Офлайн

#3 Май 20, 2015 10:54:18

marianka
Зарегистрирован: 2015-05-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

FishHook
Результат мучений показывайте, должно же было у вас что-то родиться за три дня размышлений.

Получилось только на проклятом паскале) Были попытки формировать матрицу построчно, через append, что-то формата:

import math
a=[]
i=1
j=1
ai=(i+j)/math.tan(j)
a.append(ai)

но понимаю, что вообще не то, и не туда

Отредактировано marianka (Май 20, 2015 10:55:22)

Офлайн

#4 Май 20, 2015 11:34:23

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

Ок, как вы себе представляете матрицу в питоне?



Офлайн

#5 Май 20, 2015 12:14:15

marianka
Зарегистрирован: 2015-05-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

FishHook
Ок, как вы себе представляете матрицу в питоне?
двумерный массив, как и везде. Список элементов “в длинну и ширину”, скажем так.

Офлайн

#6 Май 20, 2015 12:27:06

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

В терминологии питона вам нужен список списков.

lst = [[1, 2, 3],
         [2, 4, 6],
         [4, 6, 7]
]
Изначально lst - пустой список.
Нужен двойной цикл по i и j, во внешнем цикле создаёте новый пустой список, во вложенном добавляете в него рассчитанные значения, по завершению внутреннего цикла добавляете список к lst.



Офлайн

#7 Май 20, 2015 12:53:36

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

marianka
двумерный массив, как и везде.
На всякий случай: массив любой размерности можно оформить в виде одномерного массива. Но я не призываю делать так сейчас.

Отредактировано Shaman (Май 20, 2015 12:55:00)

Офлайн

#8 Май 20, 2015 13:54:33

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

Матрицы в Python по условию

>>> import math
>>> 
>>> def create_matrix(rows, cols):
...     f = lambda x, y: (x + y) / math.tan(y)
...     out = [[f(i + 1, j + 1) for j in range(cols)]
...            for i in range(rows)]
...     return out
... 
>>> mtx = create_matrix(6, 6)
>>> mtx
[[1.2841852318686613, -1.3729726630808574, -28.061010205738135, 4.318455772253084, -1.774877493196473, -24.054471029260895], [1.926277847802992, -1.830630217441143, -35.07626275717267, 5.1821469267037, -2.070690408729219, -27.490824033441022], [2.5683704637373226, -2.288287771801429, -42.0915153086072, 6.045838081154317, -2.366503324261964, -30.927177037621153], [3.2104630796716536, -2.745945326161715, -49.106767860041735, 6.909529235604934, -2.6623162397947095, -34.363530041801276], [3.852555695605984, -3.2036028805220007, -56.12202041147627, 7.77322039005555, -2.9581291553274554, -37.79988304598141], [4.494648311540315, -3.661260434882286, -63.1372729629108, 8.636911544506168, -3.2539420708602007, -41.23623605016154]]
>>>



Офлайн

#9 Май 21, 2015 09:55:44

marianka
Зарегистрирован: 2015-05-20
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

py.user.next

А можно пояснить лямбду? Никогда не использовала, а в мануалах как-то не очень подробно освещено, или я не догоняю просто…


А так, всем спасибо за участие, код выше рабочий, буду пробовать свои варианты реализации.

Офлайн

#10 Май 21, 2015 10:00:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Матрицы в Python по условию

Лямбда - это короткая безымянная функция, типа как колбэк в джаваскрипте

$.each(collection, function(i, e){ 
    log(i, e)
})
Здесь function по сути лямбда-функция.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version