![]() |
|
![]() ![]() ![]() |
|
Vitkaz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 29.11.2006 Репутация: нет Всего: нет |
Привет! Подскажите пожалуйста алгоритм для нахождения подмножества строк матрицы, чья сумма является 0-вектором (mod 2).
|
|||
|
||||
esperanto |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 31.5.2003 Репутация: 2 Всего: 4 |
Перебором
Перебераешь все двойки векторов Потом все тройки векторов И так далее --------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET |
|||
|
||||
Vitkaz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 29.11.2006 Репутация: нет Всего: нет |
А это не будет полным перебором ? Возможно я ошибаюсь, но по-моему этот алгоритм носит экспоненциальную сложность. Может существует более быстрый алгоритм. |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
можно попробовать посмотреть процедуру Гаусса
если до конца добираемся - значит, матрица невырожденная, и никакая комбинация не даст нуля если нет - значит, обнаружили линейно зависимое подмножество, из которого можно выбирать слагаемые для нулевой суммы -------------------- qqq |
|||
|
||||
esperanto |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 194 Регистрация: 31.5.2003 Репутация: 2 Всего: 4 |
А количество решений разве не может быть эспоненциальным? Конечно может. Возьмите все строки одинаковые. Тогда будет экспоненциальное количествое решений. И для их распечатывания понадобиться экспоненциальное время Это сообщение отредактировал(а) esperanto - 13.11.2009, 23:18 --------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET |
||||
|
|||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
для вывода всех решений, конечно, понадобится экспоненциальное время, а вот одно, похоже, можно найти за O(n^3):
можно попробовать немного модифицированную процедуру Гаусса:
в конце концов останется один вектор если он ненулевой, строки линейно независимы (т.к., по сути получилась немодифицированная процедура Гаусса с точностью до перестановки столбцов), если нулевой, то нужно посмотреть, какие строки к нему добавлялись в процессе, это подмножество и будет ответом -------------------- qqq |
|||
|
||||
Vitkaz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 29.11.2006 Репутация: нет Всего: нет |
Спасибо за высказанные идеи. Буду разбираться. Может кто-то ещё что-нибудь может посоветовать, пишите свом мысли, буду очень рад.
![]()
Ничего не имею против, просто думаю, что может существует более эффективный алгоритм. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |