|
4 / 4 / 2
Регистрация: 24.05.2013
Сообщений: 300
|
||||||||||||||||
Оценка сложности алгоритма перемножение квадратной матрицы02.11.2017, 04:48. Показов 10008. Ответов 13
Метки нет (Все метки)
Обычно один проход по одномерному массиву даст O(n).
0
|
||||||||||||||||
| 02.11.2017, 04:48 | |
|
Ответы с готовыми решениями:
13
Оценка сложности алгоритма |
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|
| 02.11.2017, 12:58 | |
|
Под n обычно подразумевают линейный размер матрицы (количество строк или количество столбцов). Поэтому сложность получается O(n3).
0
|
|
|
4 / 4 / 2
Регистрация: 24.05.2013
Сообщений: 300
|
||
| 02.11.2017, 17:34 [ТС] | ||
|
0
|
||
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
||
| 02.11.2017, 18:35 | ||
|
Если же мы вычисляем не асимптотику, а время работы алгоритма, то в формуле будут участвовать оба размера - и n, и m.
0
|
||
|
4 / 4 / 2
Регистрация: 24.05.2013
Сообщений: 300
|
|||||||||||
| 03.11.2017, 01:26 [ТС] | |||||||||||
|
Shamil1, все равно не понятно)
Почему один проход по одномерному массиву считается за O(n), а один проход по двумерному за O(n^2) ? Ведь вроде кол-во операций будет одинаковым ? На основании чего мне можно понять, что проход по двумерному массиву на порядок сложнее для программы ?
0
|
|||||||||||
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
||
| 03.11.2017, 10:46 | ||
|
Почему считают от линейного, а не от полного? Потому что обычно так удобнее. В большинстве случаев количество элементов в двумерном массиве на задаётся, а вычисляется. Например, Вы собираетесь хранить результаты всех игр чемпионата в двумерном массиве. В условии задачи будет "10 команд", а не "90 игр".
1
|
||
|
|
|||||||||||||||||
| 03.11.2017, 13:30 | |||||||||||||||||
Обращаю внимание на то, что для анализа сложности алгоритма необходимо выделить характерный масштаб задачи (Shamil1 объяснял, как это обычно делается). В коде это выражается наличием внешнего параметра (n в моём коде). Если у Вас этого параметра нет, сложность Вашего алгоритма O(1). Например, Вы в своём последнем коде пишите конкретные числовые константы 3 и 9, поэтому время работы программы на конкретной машине может быть оценено сверху, а потому сложность O(1).
1
|
|||||||||||||||||
|
4 / 4 / 2
Регистрация: 24.05.2013
Сообщений: 300
|
|||||||||||||||||
| 03.11.2017, 19:09 [ТС] | |||||||||||||||||
|
мда, теоретическая информатика не мой конек. не доходит и все
![]()
Если взять матрицу 512х512 и одномерный 512^2 получим 782 и 765 (двумерный). В среднем +-20. Хотя по картинки во вложении я должен был получить хоть какую-то разницу между проходами. Не по теме: p.s. такое чувство, что я что-то фундоментальное не понимаю... :-|
0
|
|||||||||||||||||
|
|
|||
| 03.11.2017, 19:39 | |||
|
Если дан массив с n^2 элементами, сложность будет O(n^2). Если n^3, то O(n^3). Если f(n) элементов, то O(f(n)). Добавлено через 1 минуту P.S. а ещё таблица немножко может вводить в заблуждение: в определении сложности фигурирует константа, от которой существенно зависят не только числовые значения, но и порядки указанных величин. Добавлено через 6 минут хотя, если подумать, возможно, речь в таблице идёт о точной зависимости времени в условных операциях, каждая из которых требует 0,000001с.
0
|
|||
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|||
| 03.11.2017, 19:40 | |||
|
0
|
|||
|
4 / 4 / 2
Регистрация: 24.05.2013
Сообщений: 300
|
|
| 03.11.2017, 21:11 [ТС] | |
|
Ок. Насколько я понял, если я возьму за n - количество элементов матрицы, а не ее размерность, то получу O(n) за два цикла (проход по матрице). Возьму за n ее размерность, тобишь size - получу O(n^2) за один проход по ней. Но во всем мире договорились для анализа сложности двумерной матрицы брать ее размерность, а не кол-во элементов, потому что так удобней (а правильней ли это ? еще не понял). Тру мысли ?
0
|
|
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
|
| 04.11.2017, 17:52 | |
Сообщение было отмечено Evgen8 как решение
Решение
Примерно так. Только не договорились, а потому что это диктуется объективной необходимостью. Нас интересует сложность в зависимости от параметров, заданных в условии задачи.
Например, задача "решить систему из n линейных уравнений с n неизвестными". Естественно, что нас интересует зависимость от количества уравнений/неизвестных, а не от количества элементов в двумерном массиве, который мы можем использовать (а можем и не использовать) для решения данной задачи.
0
|
|
|
0 / 0 / 0
Регистрация: 17.06.2021
Сообщений: 1
|
|
| 17.06.2021, 11:51 | |
|
Shamil1, Добрый день! Могли бы помочь в решении 2 задач.
1. Определите временную сложность О для алгоритма вычисления произведения матриц (последовательный режим). Считать матрицы квадратными размерности nn. Считать, что операции сложения и умножения занимают одинаковое время процессора. 2. Определите значения ускорения, эффективности и стоимости, если известны следующие временные характеристики: для 6-ти процессоров время выполнения последовательной части составляет 25 % и время выполнения параллельной части составляет 75 %.
0
|
|
|
Модератор
3136 / 2283 / 469
Регистрация: 26.03.2015
Сообщений: 8,886
|
||
| 17.06.2021, 20:38 | ||
|
И лучше не адресовать задачи персонально. Кому будет интересно, тот подскажет.
0
|
||
| 17.06.2021, 20:38 | |
|
Помогаю со студенческими работами здесь
14
Оценка сложности алгоритма шифрования Оценка сложности небольшого алгоритма Оценка вычислительной сложности алгоритма [MatLab]
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3.
Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
|