Програмиране с Python » Форуми » Общи въпроси

Проект "Матрици"

(34 posts)

  1. tonchev
    Member

    Здравейте,

    Posted 5 years ago #
  2. Описанието на проекта е качено, действайте.

    Вътре

    Posted 5 years ago #
  3. undergrounda
    Member

    От условието:
    Допуска се създаване на матрица само чрез задаване на m и n, което ще създаде ЕД

    Posted 5 years ago #
  4. tonchev
    Member

    Аз го разбирам така: може да са различни числата и единичната матрица mxn (m!=n) е матрица с единици по главния диагонал (a11, a22, a33 ... ). Останалите елементи са 0.

    Posted 5 years ago #
  5. Ами вижте, тук очевидно не е направено уточнението, че е нужно m и n да са равни, което е необходимо, за да имаме единична матрица. Разбирането на Тончев е напълно възможна имплементация, макар че е добре да добавите някаква проверка за целта - или да хвърляте checked-изключение, или да имате assert, или нещо от този род.

    Posted 5 years ago #
  6. miroslav
    Member

    m.is_symmetric да бъде True, ако инстанцията, на която се прилага, е симетрична матрица.

    Симетрична матрица като понятието симетрична матрица или като класа symmetric_matrix? Т.е. дали е инстанция на този клас или просто си изпълнява условието за симетричност?

    Posted 5 years ago #
  7. tonchev
    Member

    Според мен трябва да връща True, ако матрицата е инстанция на класа symmetric_matrix. Това автоматично (би трябвало, ако имплементацията ти е смислена, да) влече, че матрицата е симетрична.

    За симетричните матрици има

    Posted 5 years ago #
  8. Методът is_symmetric() трябва да връща True, ако инстанцията, на която се прилага, е симетрична матрица, в математическия смисъл. Методът трябва да се поддържа за всички инстанции на матриците. Където е възможно, е добре да се реализира максимално тривиално :)

    Posted 5 years ago #
  9. ddobrev
    Member

    Здравейте.

    Posted 5 years ago #
  10. Crescent
    Member

    За индексния оператор - и аз съм го реализирал така. Вижда ми се достатъчно добро за 10-те точки ;)
    За __repr__ също съм действал по подобен начин.

    Обаче имам други въпроси относно свойствата is_symmetric, is_diagonal, is_orthogonal, а именно:
    Трябва ли is_symmetric да връща True, ако се извика от клас matrix, който по някаква случайност е станал симетричен в момента, но по принцип държи най-обикновена матрица. Същото важи и за другите два оператора.
    Следващ въпрос - една диагонална матрица трябва ли да връща True на is_symmetric?
    Единичната матрица връща ли True при тия трите медота?

    Posted 5 years ago #
  11. roadstar
    Member

    За индексния оператор: OK ли е, ако m[0][0] е първият елемент на матрицата, т.е. индексирането започва от нула?

    Posted 5 years ago #
  12. Е, много ясно, че започва от нула.

    Posted 5 years ago #
  13. JLeno
    Member

    Все пак нулата е 'първото' естествено число :Р

    Posted 5 years ago #
  14. Хайде да не започваме този спор. Животът е кратък, нека го употребяваме по предназначение :-)

    Posted 5 years ago #
  15. roadstar
    Member

    -за симетрична матрица: транспониране
    -за диагоална матрица: детерминанта
    -за ортогонална матрица: обратна матрица
    Трябва ли да има други "оптимизирани" операции със специалните матрици?

    Posted 5 years ago #
  16. roadstar - по ва

    Posted 5 years ago #
  17. roadstar
    Member

    Мерси за отговора, имам още 1 въпрос:)
    Ако се събират 2 инстанции на специален клас, резултатът пак ли трябва да е от специален клас, или инстанция на matrix? Примерно:

    Posted 5 years ago #
  18. Е, когато това е възможно. Със сигурност се сещам за случаи, в които това не върви, тъй като е напълно възможно да съберем диагонална с друг тип матрица и резултатът да не е отново диагонална. С оглед на това, е по-дорбе да се връща инстанция на класа matrix.

    Posted 5 years ago #
  19. alive
    Member

    имам следния въпрос за се сериализацията:
    да я създадем като обект на класа, т.е. при задаване на m.stream_in(fp), m да се зареди от потока fp, а при m.stream_out(fp), m да се запи

    Posted 5 years ago #
  20. Какъв точно е въпросът?

    Posted 5 years ago #
  21. roadstar
    Member

    "stream_out(fp) запазва матрица във потока fp"
    Как ще стане това, ако методът е статичен? Не трябва ли да има още един аргумент за самата матрица, т.е. stream_out(fp,m)?

    Posted 5 years ago #
  22. alive
    Member

    stream_*(fp) са реализирани като функции в класа
    т.е ако има

    Posted 5 years ago #
  23. roadstar
    Member

    alive, е, да де, ама в условието пи

    Posted 5 years ago #
  24. roadstar е прав, ако методът е статичен, е необходимо да има още един аргумент, който съм пропуснал в условието и който добавих.

    Posted 5 years ago #
  25. undergrounda
    Member

    Дa mersi mnogo che nqkoj se seti predniq den predi posledniq srok za izprashtane da napishe che nqma da ima bonus tochki za matricite. Znaete li, mojeshe i da napishete dneska do v4era beshe sroka za bonus to4kite, a ne da si igraete da go postvate 4aaak minaliq den!

    Posted 5 years ago #
  26. dg
    Member

    Възможно ли е да дадете друго условие за бонус точки? Така може би ще е най-добре за всички които работят по този проект и същевременно вие няма да сте "ло

    Posted 5 years ago #
  27. alive
    Member

    имам още един въпрос за сериализация:
    Ако запи

    Posted 5 years ago #
  28. roadstar
    Member

    Posted 5 years ago #
  29. alive, няма проблем да е от клас matrix(), макар че ми се струва, че може да пробва

    Posted 5 years ago #
  30. roadstar, dg — ако имате предложение за бонус, дайте го и ще си помислим :)

    Posted 5 years ago #

RSS feed for this topic

Reply »

You must log in to post.