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

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 25: Строка 25:
 
: {{tick | ticked=1}} Оценка сложности и выбор k - немного перемудрили. Тут на самом деле нельзя асимптотически улучшить выбором k, но это непросто показать. Достаточно сказать, что выбрав k = \Omega(log n) получаем требуемую сложность
 
: {{tick | ticked=1}} Оценка сложности и выбор k - немного перемудрили. Тут на самом деле нельзя асимптотически улучшить выбором k, но это непросто показать. Достаточно сказать, что выбрав k = \Omega(log n) получаем требуемую сложность
 
: {{tick | ticked=1}} Код убрать или заменить на псевдокод
 
: {{tick | ticked=1}} Код убрать или заменить на псевдокод
: {{tick}} Нужен пример и, желательно, картинка"
+
: {{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)

Версия 23:57, 12 января 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)