ayvango
|
ушастый
|
|
|
|
Рег.: 10.01.2006
|
Сообщений: 27731
|
Из: Воронеж
|
Рейтинг: 11831
|
|
Re: [python] Давайте писать всякие не очень очевидные для новичков при
[re: burivuh]
27.08.2010 17:00
|
|
|
задача - сделать эффективное представление матрицы. Возможно выполнение функции normalize в фонов режиме (таким же образом, как и работа garbage collectorа), либо просто в момент операции определяется что делать с результатом: конвертировать или нет (посчитать во время умножения количество ненулевых элементов не усложняет задачу умножения), хранить одну версию представления или обе.
|
Сеть темна и полна ужасов |
|
psa
|
sir
|
|
|
|
Рег.: 03.04.2004
|
Сообщений: 1205
|
|
Рейтинг: 509
|
|
Re: [python] Давайте писать всякие не очень очевидные для новичков при
[re: ayvango]
27.08.2010 17:07
|
|
|
В ответ на:
задача - сделать эффективное представление матрицы. Возможно выполнение функции normalize в фонов режиме
Как бы тут противоречие... При "эффективном" представлении, решении или еще чего там у тебя просто _нет_ фонового режима.
|
Antivirus alert: file .signature infected by signature virus. |
|
KPblC
|
няшенько
|
|
|
|
Рег.: 29.11.2006
|
Сообщений: 15472
|
|
Рейтинг: 12019
|
|
Re: [python] Давайте писать всякие не очень очевидные для новичков при
[re: ayvango]
27.08.2010 17:07
|
|
|
кому нахуй питон нужен пишите на жабе
|
|
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31410
|
|
Рейтинг: 8951
|
|
|
> момент первый: почему матрицы сами себя подменяют вместо того, чтобы отдать управление чехардой третьему лицу > момент второй: почему класс полной матрицы проверяет себя на полноту > я увидел задачу так (поправь): в системе появляются данные, по ним определяется, какую матрицу использовать, матрица используется - замыкаем цикл
если сделать так как ты говоришь, то как будет выглядеть в коде, например, сложение двух полных матриц, в результате которых получается разреженная матрица?
в решении ayvango код будет аля matrix1 += matrix2; и в результате matrix1 автоматически становится разреженной.
|
|
psa
|
sir
|
|
|
|
Рег.: 03.04.2004
|
Сообщений: 1205
|
|
Рейтинг: 509
|
|
|
В ответ на:
в решении ayvango код будет аля matrix1 += matrix2; и в результате matrix1 автоматически становится разреженной.
опустим вопрос про копирования, но вспомним, что перевод в/из разреженного формата весьма не бесплатен и если у тебя более одной операции матричной то на этом можно погореть, прыгая постоянно из одного в другой формат
|
Antivirus alert: file .signature infected by signature virus. |
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31410
|
|
Рейтинг: 8951
|
|
|
>и если у тебя более одной операции матричной то на этом можно погореть, прыгая постоянно из одного в другой формат
вопрос быстрого определения когда действительно необходимо перепрыгнуть тоже стоит опустить, потому что он не имеет отношения к поднятому ранее вопросу
|
|
psa
|
sir
|
|
|
|
Рег.: 03.04.2004
|
Сообщений: 1205
|
|
Рейтинг: 509
|
|
|
определить быстро - совсем не проблема проблема - это рюхнуть что конверсия действительно _нужна_ а это может решить только пользователь, который знает, что он там будет делать потом это я к тому что пример дурацкий 
|
Antivirus alert: file .signature infected by signature virus. |
|
DarkGray
|
Carpal Tunnel
|
|
|
|
Рег.: 30.09.2002
|
Сообщений: 31410
|
|
Рейтинг: 8951
|
|
|
не нашел отличий в твоей фразе от моей
>psa>проблема - это рюхнуть что конверсия действительно _нужна_
>dg>вопрос быстрого определения когда действительно необходимо перепрыгнуть тоже стоит
|
|
ayvango
|
ушастый
|
|
|
|
Рег.: 10.01.2006
|
Сообщений: 27731
|
Из: Воронеж
|
Рейтинг: 11831
|
|
|
Quote:
вопрос быстрого определения когда действительно необходимо перепрыгнуть тоже стоит опустить, потому что он не имеет отношения к поднятому ранее вопросу
значит можно еще ввести класс DelayedMatrix
|
Сеть темна и полна ужасов |
|
unkulunkulu
|
unkulunkulunkulu
|
|
|
|
Рег.: 12.11.2006
|
Сообщений: 18453
|
Из: 13000
|
Рейтинг: 11759
|
|
Re: [python] Давайте писать всякие не очень очевидные для новичков при
[re: burivuh]
27.08.2010 18:20
|
|
|
Quote:
У меня, честно говоря, возникает ощущение, что либо я не осознал задачу, либо архитектура решения хреновая. момент первый: почему матрицы сами себя подменяют вместо того, чтобы отдать управление чехардой третьему лицу момент второй: почему класс полной матрицы проверяет себя на полноту я увидел задачу так (поправь): в системе появляются данные, по ним определяется, какую матрицу использовать, матрица используется - замыкаем цикл
да к черту матрицы, он про шаблон State.
Фишка вот в чем: он по сути сказал, что шаблон State реализуется на питоне гораздо лаконичнее, чем на C++. Таких примеров для разных языков и шаблонов довольно много. В пример привел применение шаблона State к матрицам. Все замечания тут относятся к адекватности применения этого шаблона к этой задаче, но не к питону и его преимуществах, State - довольно часто используемый шаблон, лаконичность его реализации - это аргумент.
Редактировал unkulunkulu (27.08.2010 18:48)
|
|
unkulunkulu
|
unkulunkulunkulu
|
|
|
|
Рег.: 12.11.2006
|
Сообщений: 18453
|
Из: 13000
|
Рейтинг: 11759
|
|
Re: [python] Давайте писать всякие не очень очевидные для новичков при
[re: unkulunkulu]
27.08.2010 18:54
|
|
|
Да даже еще сильнее: State в питоне вообще не нужен по сути, там эта функциональность доступна напрямую.
|
|
DizzyDen
|
достаточно добр
|
|
|
|
Рег.: 04.03.2003
|
Сообщений: 51427
|
Из: http://лакалхвост
|
Рейтинг: 13546
|
|
|
Quote:
значит можно еще ввести класс DelayedMatrix
Lazy.
|
If stateless paradigm is good for your code, why shouldn't it be for your country? |
|
krendel
|
|
|
|
|
Рег.: 20.10.2003
|
Сообщений: 14379
|
|
Рейтинг: 10274
|
|
|
|