Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2010, 15:48   #1
Владимир777
Новичок
Джуниор
 
Регистрация: 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 и. т. д.

Подскажите пожалуйста какую хотя бы надо программу использовать при написании алгоритма? Паскаль подойдет? Или что-то другое?
Если для вас этот алгоритм - как два пальца обосать, может поможете составить, хотя бы просто обычное нахождение групп!?
Владимир777 вне форума Ответить с цитированием
Старый 02.03.2010, 17:41   #2
NBAskel
Новичок
Джуниор
 
Регистрация: 10.02.2010
Сообщений: 1
По умолчанию

Я могу написать за вознаграждение.
В Паскале вставлять текст при вводе нельзя; в Делфи, думаю, смогу сделать, не слишком и сложно, хотя помучаться надо.
ICQ: 580 252 184

Если вы готовы отдать пару сотен рублей, то договоримся. Только я пишу на Делфи.

Последний раз редактировалось NBAskel; 02.03.2010 в 18:59.
NBAskel вне форума Ответить с цитированием
Старый 02.03.2010, 18:29   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,618
По умолчанию

могу на С++ написать за 2000 рублей
ICQ 395546218
rrrFer вне форума Ответить с цитированием
Старый 02.03.2010, 21:50   #4
semenovmixan
Заблокирован
 
Регистрация: 08.01.2010
Сообщений: 0
По умолчанию

Готов взяться за проект
номер ICQ: 565460353 или 480964456
mikefreelance@rambler.ru
semenovmixan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложнейший алгоритм (сортировка последовательности чисел по группам), программа? язык написания? Владимир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