Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача на паскале на комбинаторику. 
:(
    Опции темы
Rhc
Дата 30.12.2013, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 30.12.2013

Репутация: нет
Всего: нет



Всем привет! Помогите оформить или подсказать код к вот такой задаче:

1. Вводится число, означающее количество элементов массива. 
2. Разделить элементы массива на 2 группы так, что бы разность между ними была минимальна. 
Например, вводим:
3
1 3 5
Получаем: 
1
Или ещё
4
1 1 1 1 
Получаем:
0

Как я решил эту задачу: 
(Допустим, входные данные были:
3
1 3 5) 
1. Ищем сумму и делим на два (1+3+5)/2=4,5.
2. Нужен массив, длина которого будет в 2 раза меньше, чем длина введённого. 
2.1. Если длина массива нечётная, то округлить длину массива в меньшую сторону.
3. "Засовываем" все возможные комбинации чисел в наш обрезанный массив и искать разность чисел с тем, что получилось в п. 1.
3.1. Разность брать по модулю, чтобы не было геморроя.
4. Наименьшая возможная разность и будет решением, но не будет ответом, так как ответом будет эта минимальная разность умноженная на два.

Как теперь всё это оформить в виде кода? 

PM MAIL   Вверх
de_Nis
Дата 31.12.2013, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старательный
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 19.10.2006
Где: Молдова

Репутация: нет
Всего: 6



Попробуем применить твой алгоритм к следующему набору цифр: 1, 3, 5, 9.
1.  Ищем сумму и делим на два: (1+3+5+9)/2=9
2. Нужен массив, длина которого будет в 2 раза меньше, чем длина введённого. Для нашего случая: 4/2=2, то есть массив из двух элементов.
Но ответ: массив из одного элемента 9 или из трех 1, 3, 5.
Видно, что предложенный тобой алгоритм не работает.

Поэтому до "Как теперь всё это оформить в виде кода? " нужно найти правильный алгоритм.
А это - вопрос в раздел "Форум -> Технологии и алгоритмы -> Алгоритмы" 
И только найдя алгоритм, стоит задавать вопрос о его реализации на конкретном языке программирования.

Это сообщение отредактировал(а) de_Nis - 31.12.2013, 18:36
--------------------
Несчастлив не тот, у кого ничего нет, а тот, кто ничего не хочет…
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0394 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.