![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Determinant |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 6.11.2011 Репутация: нет Всего: нет |
По ходу программы пришлось столкнутся с обработкой матрицы...
необходимо преобразовать матрицу по заданному количеству одинаковых элементов...то есть, например: имеется входящая матрица: 1 1 2 2 0 3 3 0 4 4 5 5 0 6 6 0 в данном случае максимальное количество разных эелементов в матрице 2, именно (1 и 2) в первой строке, (4 и 5) во второй, вопрос теперь в том как сделать что б пользователь вводил максимальное количество одинаковых элементов и данная матрица трансформировалась, например если ввести количество таких элементов равных 1, то данная матрица должна принять вид: 1 1 0 0 0 0 2 2 0 3 3 0 4 4 0 0 0 0 5 5 0 6 6 0 то есть в каждой строке не более 1 разного элемента... вот как такой алгоритм сделать, уже совсем запутался...может кто сталкивался с таким, очень прошу помощи! Вот если что кусок кода где я пытался это сделать:
желательно на С++ Builder заранее спасибо!!! |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: нет Всего: 34 |
Сначала вопрос - а что должно быть сделано, если, например, пользователь ввел ограничение 2, а одна из строк выглядит как-то так:
5 5 5 5 т.е. что делать с лишними элентами? Для приведенного же примера алгоритм довольно прост 1. Создаем новый массив с тем же количеством столбцов и нулем строк. 2. Берем следующую строку матрицы (по порядку начиная с первой) 3. Собираем в отдельный список уникальные элементы 4. Берем следующий по порядку элемент этого уникального списка (начиная с первого элемента) 5. Присоединяем вниз новой матрицы нашу строку. 6. Заменяем в присоединенной строке все элементы не равными элементы неравные взятому в пункте 4 нулями. 7. Если список уникальных элементов не кончился возвращаемся к пункту 4. 8. Если исходная матрица не закончилась возвращаемся к пункту 2. Теперь осталось вставить кусочек для обработки ответа на мой первый вопрос -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| Determinant |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 6.11.2011 Репутация: нет Всего: нет |
тогда оставляем данную строку без изменений, так как количество неодинаковых (уникальных) элементов равно 1, что меньше 2...
все равно как то запутанно получаеться |
||||
|
|||||
| Determinant |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 6.11.2011 Репутация: нет Всего: нет |
вот попытался сделать, kil - это та переменная что вводит пользователь, количество тех самых неодинаковых элементов...
но выводит вот что: 1 1 2 2 0 0 0 вместо: 1 1 0 0 0 0 2 2 0 3 3 0 4 4 0 0 0 0 5 5 0 6 6 0 |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: нет Всего: 34 |
Несколько странно спрашивать код, не зная на каком языке человек пишет. Код LabVIEW устроит? -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| Determinant |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 6.11.2011 Репутация: нет Всего: нет |
можно и такой, но жаль, что не С++, мне на нем делать, но попытаюсь перевести если что... |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: нет Всего: 34 |
Determinant, вы когда-нибудь LabVIEW код видели?
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| Determinant |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 6.11.2011 Репутация: нет Всего: нет |
увы нет, не видел...С++ во основном занимаюсь...вот пробовал, пример выслал, что пытался...никак не выходит, я уже несколько недель себе репу чешу как сделать, дальше в курсовой все от этого должно идти... |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: нет Всего: 34 |
Ну если очень надо, я могу на Java написать (при не очень большом уровне срочности) - на таком-то уровне я его вспомню. С++ мне практически не знаком - никогда не сталкивался с задачами, для которых он бы мне понадобился.
Поэтому вопросы: Разберетесь с Java? Коллекции в С++ бывают? А то кажется мне что с массивами возиться долго придется. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| Determinant |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 6.11.2011 Репутация: нет Всего: нет |
коллекций нет в С++...но сам С на java очень похож...так что нормально, срочности нет как таковой...так что если не трудно, был бы очень благодарен...
|
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |