|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.03.2010, 15:48 | #1 |
Новичок
Джуниор
Регистрация: 02.03.2010
Сообщений: 1
|
Сложнейший алгоритм (сортировка последовательности чисел по группам)
1) Используя любое приложение или программу написать алгоритм сортировки, заданной последовательности чисел. Описание алгоритма: вводится (задаётся) последовательность чисел (натуральных) и программа выводит на экран группы (отделённые друг от друга) чисел не повторяющиеся друг с другом, т.е. в отдельно взятой группе все числа должны быть разные – не равные друг другу (кол-во чисел в группе, которые не равны друг другу, должно быть не меньше заданного параметра, т.е. кол-во чисел больше или равно заданному кол-ву). ВАЖНО: Кроме того, в работе алгоритма должно учитываться: при обнаружении группы разных последовательных чисел, поиск новой (группы) последовательности начинается с повторного числа (подробное описание в примере). Числа в группах и сами группы должны идти в той же последовательности, что и в заданной (изначально). Рядом с каждой группой (также выводится на экран) должно быть указанно кол-во чисел в группе. Пример (процесс работы алгоритма): зададим кол-во разных чисел в группе – 15 и введём последовательность чисел -
12, 4, 65, 76, 44, 3, 98, 32, 65, 23, 7 , 10, 59, 4, 88, 13, 37, 88, 5, 38, 0, 9, 13, 3, 92, 84, 76, 70, 14, 63, 79, 19, 41, 90, 14, 70, 67, 82, 16, 70, 5, 33, 36, 33, 17, 25, 27, 54, 99, 32, 47, 69, 96, 42, 77, 88, 10, 47, 42, 10, 39, 50. “Считывание” последовательности чисел начинается с 12 (начало), до повторного числа у нас в группе 8 разных чисел (12, 4, 65, 76, 44, 3, 98, 32), при появление повторного числа 65 “считывание” начинается с 76, т.е. (76, 44, 3, 98, 32, 65, 23 и т. д.), так как (12, 4, 65) уже не могут входить в группу, где 15 чисел разных. Далее, до повторного числа у нас в группе 14 разных чисел (76, 44, 3 …….88, 13, 37), но следующее появляется повторное число 88, и мы начинаем с 13, т.е. (13, 37, 88, 5, 38 и т. д.). Далее аналогично, появляется 13, начинаем с 37, т.е. (37, 88, 5, 38 и т. д.). Так до тех пор, пока условие не будет выполнено (кол-во разных чисел больше или равно 15). Наконец, когда находится группа чисел, удовлетворяющая условию, мы начинаем “считывание” с повторного числа (как указанно в описании алгоритма - ВАЖНО), в данном случае с 14, т.е. (14, 70, 67, 82 и т. д.), а не с 63 (63, 79, 19, 41 и. т. д.). Далее всё по алгоритму, пока не найдём следующую группу – повторное число 70, начинаем с 67 (67, 82, 16, 70, 5 и т. д.), повторное 33 начинаем (36, 33, 17 и т. д.). Находим 2 группу, начинаем уже с 47 (47, 42, 10, 39, 50) и т. д. В итоге машина на экран выводит следующий результат: (37, 88, 5, 38, 2, 9, 13, 3, 92, 84, 76, 70, 14, 63, 79, 19, 41, 90) – 18* (36, 33, 17, 25, 27, 54, 99, 32, 47, 69, 96, 42, 77, 88, 10) – 15* *18 и 15 – количество чисел в группе. (Таким образом, используя эту закономерность, при помощи формул и команд - нужно составить этот алгоритм) ПРИМЕЧАНИЕ: Также необходимо, чтобы при вводе последовательности чисел была доступна команда “вставить”, чтобы можно было скопировать эту последовательность из источника, а не вводить вручную. Кроме того, должен быть доступен ввод 100.000 и более последовательных чисел. Обозначить номер каждой группы (слева). А также присвоить каждому числу в последовательности порядковый номер и в результате выводить рядом с группой чисел порядковый номер первого числа группы. 2) Если вы правильно поняли и составили алгоритм (1), то далее вам нужно его немного модернизировать (усложнить): ввести новый параметр, который тоже задаётся числом. Его функцию объясню на примере: кол-во разных чисел в группе – 15 числовой ограничитель – 3 (новый параметр) Алгоритм нахождения группы чисел остаётся прежним, только когда в процессе “считывания” выявляется группа из N (15) чисел (заданная переменная, см. выше), то следующие числа (16-ое, 17-ое, 18-ое и т. д. - по порядку в группе) сравниваются со всеми кроме первых трёх(числовой ограничитель-3) На пример последовательность – 49, 34, 96, 13, 8......54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 55, 89, 54, 61, 90......и т. д. При “считывании” с 54 по 68 у нас пока формируется группа из 15 разных чисел, далее идёт число 55, если бы числовой ограничитель имел значение 0, то у нас получилась группа из 15 чисел, а так (числ. огран. – 3) первые 3 числа в группе (54, 55, 56) не сравниваются и число 61 является завершающим, машина выдаст на экран: (54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 55, 89, 54) - 18 и. т. д. Подскажите пожалуйста какую хотя бы надо программу использовать при написании алгоритма? Паскаль подойдет? Или что-то другое? Если для вас этот алгоритм - как два пальца обосать, может поможете составить, хотя бы просто обычное нахождение групп!? |
02.03.2010, 17:41 | #2 |
Новичок
Джуниор
Регистрация: 10.02.2010
Сообщений: 1
|
Я могу написать за вознаграждение.
В Паскале вставлять текст при вводе нельзя; в Делфи, думаю, смогу сделать, не слишком и сложно, хотя помучаться надо. ICQ: 580 252 184 Если вы готовы отдать пару сотен рублей, то договоримся. Только я пишу на Делфи. Последний раз редактировалось NBAskel; 02.03.2010 в 18:59. |
02.03.2010, 18:29 | #3 |
Санитар
Старожил
Регистрация: 04.10.2008
Сообщений: 2,577
|
могу на С++ написать за 2000 рублей
ICQ 395546218 |
02.03.2010, 21:50 | #4 |
Заблокирован
Регистрация: 08.01.2010
Сообщений: 0
|
Готов взяться за проект
номер ICQ: 565460353 или 480964456 mikefreelance@rambler.ru |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сложнейший алгоритм (сортировка последовательности чисел по группам), программа? язык написания? | Владимир777 | Помощь студентам | 1 | 02.03.2010 22:15 |
задачи на последовательности чисел в СИ | Alexander90 | Помощь студентам | 0 | 14.10.2009 15:42 |
Определить k-ую цифру последовательности Фибоначчи и последовательности натуральных чисел. | Med | Помощь студентам | 1 | 20.03.2009 11:40 |
вычисление суммы чисел, кратных 3 из последовательности, состоящей из 10 чисел, заранее заданных | Белка | Помощь студентам | 3 | 27.10.2007 11:53 |