На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела
Данный раздел существует для того, чтобы вы могли сказать о качестве выполнения работы тем или иным фрилансером. Указание ника, под которым фрилансер зарегистрирован на данном форуме и языка программирования обязательно. Остальные контакты по желанию.

Фрилансерам - здесь можно создавать некое подобие портфолио, в котором и будут оставлять отзывы заказчики.
Модераторы: ttiger, Rust
  
> бесплатно пишу на Delphi
    сегодня сделал для друзей небольшую прогу на 5-м Delphi и, вдохновлённый успехом, решил предложить свои услуги. свободное время бывает редко, так что писать буду долго. из всех заказов буду выбирать самые лёгкие, потому как сам пока далеко не профи

    ближайшие планы:
    освоить получше Delphi,
    изучить постепенно что-нить такое, на чём можно реально зарабатывать,
    и- стать фрилансером

    общаться с заказчиками могу ч/з форум, а так же личкой и мылом
      помогите с задачей плиз

      даны числа от 1 до n, 1<n<5000.Требуется написать программу(С++ Builder,Delphy,Pascal) разбиения данных чисел на минимальное количество групп, в каждой их которых сумма является простым числом. Например при n=8 такими группами могут быть: {1,4,5,6,7},{2,3,8}.
        Leks1999, дико извиняюсь, прочёл текст твоего задания только щазз
        // до этого задания личкой слали, указывая свой мыл. твоего мыла я не вижу

        единственное, что приходит в голову, так это перебор вариантов:

        1. создаём первую группу, из всех чисел от 1 до n
        2. если сумма чисел первой группы простое, то- решение найдено,
        3. иначе убираем из неё наименьшее слагаемое в очередную(вторую) группу
        4. если сумма чисел каждой из групп- простые, то- решение найдено,
        5. иначе- делаем "шаг_перебора"
        /* шаг перебора заключается в том, что мы либо отдаём очередное наименьшее слагаемое из первой группы во вторую, либо совершаем обмен большего слагаемого на меньшее так, что бы группа-донор уменьшилась на как можно более маленький шаг (на столько же увеличится группа-рецептор) */
        6. если теперь группа-донор (по сумме членов) стала меньше группы-рецептора, ТО это означает, что уже был совершён полный перебор для данного кол-ва групп, и надо теперь делать перебор для бОльшего кол-ва групп. для этого опять сваливаем все слагаемые в одну группу, а из неё отдаём наименьшее- в последнюю группу, следующее- в предпоследнюю и т п, и переходим к п 4
        7. если же группа-донор ещё НЕ меньше группы-рецептора, то переходим к п 4

        алгоритм надобы ещё додумать, упростить, и реализовать.

        ***

        можно попробовать другой вариант:
        1. найти сумму чисел от 1 до n
        2. разбить её на как можно меньшее кол-во простых слагаемых (это всегда возможно. в худшем случае будет 1+1+1...)
        3. попробовать уложить числа от 1 до n в соответствующие группы (с найденными простыми суммами всех членов)
        4. если не удалось- ... вот тут начинаются сложности, из-за которых я и оставил этот вариант вторым. а не основным
        т е здесь мы приходим к перебору, ничуть не проще того, что в первом варианте, но перед этим мы уже потратили время на другие действия

        в итоге, первый вариант решения задачи, оказывается более простым и быстрым для общего случая

        ***

        Leks1999, если тебе ещё нужна такая прога- напиши. а так же напиши, есть ли в задании ограничения на сложность алгоритма. если это учебное задание, то хотелось бы увидеть его точную полную формулировку
          ya2500можете с базой знаний помочь?
            наверное может

            Сообщения были разделены в тему "spam"
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0204 ]   [ 17 queries used ]   [ Generated: 28.03.24, 14:32 GMT ]