![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.03.2011
Сообщений: 7
|
![]()
Всем доброе время суток! По ходу написание программы пришлось столкнуться с обработкой матрицы, задача состоит в следующем: допустим дана матрица А следующего вида:
1 1 2 2 0 0 3 3 4 4 5 5 6 6 0 0 7 7 8 8 9 9 10 10 11 11 12 12 0 0 0 0 0 0 13 13 и пользователь задает некое число допустим это число В=3...данная матрица включает в себя понятие значимого элемента, такими элементами являются все элементы не равные нулю взятые по одному разу, например для первой строки эти элементы: 1,2; для второй: 3,4,5. требуется провести оптимизацию этой матрицы по следующему принципу, число В определяет количество возможных значимых элементов матрицы в любой из строк, требуется, если это возможно перенести значимый элемент на строку выше, если там над этими элементами стоят нулевые, то есть, из исходной матрицы после такой оптимизации мы должны получить матрицу С вида: 1 1 2 2 5 5 3 3 4 4 7 7 6 6 9 9 10 10 8 8 12 12 13 13 11 11 0 0 0 0 то есть строка в которой все элементы нулевые просто удаляется, прощу помощи ибо очень запутался в самом алгоритме реализации такой операции, заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
че-та нифига не понятно с какого боку тут B, но сам алгоритм всплытия наверх очень простой:
- в цикле перебираешь все строки матрицы, от 0 до N-1 - сравниваеть попарно строку i и i+1 для каждого элемента, если в первой строке i-элемент равен нулю, меняешь его с элементом второй строки таки образом, после первой итерации строки будут выглядеть так: 1 1 2 2 5 5 3 3 4 4 0 0 ... и так далее до конца цикла. задачка забавная.. может даже решу её... потом, ибо завтра у меня отрыв и активное вливание в ночную жизнь города, в воскресение я отдыхаю после вчерашнего(((Ж а там видно будет..
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 02.03.2011
Сообщений: 7
|
![]()
спасибо
В это число которое вводит пользователь и оно значит максимально возможное количество значимых элементов в одной строке, то есть если В=3, то строка: 1 2 3 0 0, не может стать после оптимизации например вот такой строкой: 1 2 3 4 4, ибо значимых элементов в таком случае будет уже 4 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложная задача | Paster Fob | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 16.05.2012 16:48 |
Сложная задача(( | альбертоо | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 07.12.2011 16:57 |
Сложная задача с матрицей | Determinant666 | C++ Builder | 2 | 06.11.2011 21:28 |
сложная задача | ugradvizhok | Помощь студентам | 1 | 30.03.2011 23:30 |
Сложная задача | asale | Microsoft Office Excel | 6 | 07.04.2009 20:36 |