Обсуждение:Метод четырёх русских для умножения матриц — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Замечания АС)
Строка 27: Строка 27:
 
: {{tick | ticked=1}} Нужен пример и, желательно, картинка"
 
: {{tick | ticked=1}} Нужен пример и, желательно, картинка"
 
:: Пример хороший, но все-таки, обозначь не 0, 1, 2, 3, а 00, 01, 10, 11, будет нагляднее. --[[Участник:Dgerasimov|Дмитрий Герасимов]] 23:37, 12 января 2012 (MSK)
 
:: Пример хороший, но все-таки, обозначь не 0, 1, 2, 3, а 00, 01, 10, 11, будет нагляднее. --[[Участник:Dgerasimov|Дмитрий Герасимов]] 23:37, 12 января 2012 (MSK)
 +
 +
: {{tick | ticked=1}} опять умножение звездочкой. Кто еще обозначит умножение звездочкой в викиконспекте, отправлю в монастырь!
 +
: {{tick}} оформление источников сделать по-человечески
 +
:: А зачем название жирным?
 +
: {{tick}} все также нет картинки общего метода
 +
:: Здесь имеется в виду, что нужно описать еще и общий метод «четырех русских», так как он применяется не только для перемножения матриц. Почитай «Гасфилд — Деревья, строки и последовательности», там на стр. 369 написано про это, попробуй выделить общий метод и сделай какую-то схему/картинку. --[[Участник:Dgerasimov|Дмитрий Герасимов]] 07:34, 13 января 2012 (MSK)

Версия 07:34, 13 января 2012

Добавить анализ (почему именно log n) оценки для k.
«трудоёмкость» — бррр, асимптотика же.
Добавить псевдокод
писал кучу раз — псевдокод должен явно принимать входные данные и явно возвращать ответ. Тут я этого не наблюдаю.
не понимаю, в чем сложность сделать код одной функцией, без всякого ввода-вывода. ладно, хрен с ним.
аргумент после log не в скобках(done)
Насколько я помню, в c++, java и вообще большинстве ЯП log — это натуральный логарифм, пиши явно log2.(done)
cursuma и т.п. никуда не годится, используй camelCase.(done)
Зачем большие I и J?(done)
Что за precul? Во-первых, используй какой-то стиль именования переменных, во-вторых, calculation.(done)
log n округлено вверх, или вниз? Разберись и напиши в коде явно, создаётся ощущение что k — double.(done)
Для возведения в степень лучше использовать **, так как во многих языках программирования ^ — xor.(done) // ты таки написал (1 << k) вместо явного 2 ** k. В общем-то ладно, и в программе все сдвиг, конечно, юзают, но, имхо, псевдокод надо как можно более явным делать.
Зачем вообще всё написано словами? Считаешь скал. произведения - отображай это кодом(хотя бы функцией dotProduct), если хочешь — напиши коммент. В общем, слишком много слов в псевдокоде.(done)
Зачем раздел «постановка задачи»? Перемести это в шапку.
Зачем «Рассмотрим следующую задачу:»? Пиши сразу условие задачи, зачем его цитировать? А ещё точка ставится после закрывающей кавычки, а не перед.
Зачем такой маленький раздел «предподсчет»? Объедини его со сжатием матриц.
используй везде n одинакового размера
указать ссылки на какие-нибудь источники
добавить категории
Кстати, лучше подписываться. Я тоже забыл в прошлый раз, но всё же.

--Дмитрий Герасимов 07:57, 16 декабря 2011 (MSK)

Замечания АС

Оценка сложности и выбор k - немного перемудрили. Тут на самом деле нельзя асимптотически улучшить выбором k, но это непросто показать. Достаточно сказать, что выбрав k = \Omega(log n) получаем требуемую сложность
Код убрать или заменить на псевдокод
Нужен пример и, желательно, картинка"
Пример хороший, но все-таки, обозначь не 0, 1, 2, 3, а 00, 01, 10, 11, будет нагляднее. --Дмитрий Герасимов 23:37, 12 января 2012 (MSK)
опять умножение звездочкой. Кто еще обозначит умножение звездочкой в викиконспекте, отправлю в монастырь!
оформление источников сделать по-человечески
А зачем название жирным?
все также нет картинки общего метода
Здесь имеется в виду, что нужно описать еще и общий метод «четырех русских», так как он применяется не только для перемножения матриц. Почитай «Гасфилд — Деревья, строки и последовательности», там на стр. 369 написано про это, попробуй выделить общий метод и сделай какую-то схему/картинку. --Дмитрий Герасимов 07:34, 13 января 2012 (MSK)