Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите найти алгоритм решения задачи, разделение добычи 
:(
    Опции темы
jezismaria
  Дата 30.4.2011, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задача такова - есть группа алмазодобытчиков, три человека. Они могут найти несколько алмазов (до 20 допустим), каждый стоит определенную цену. Вопрос таков - как им точно разделить эти алмазы по цене? пример: нашли 5 алмазов, стоят: 1,1,1,1,2, ответ: разделить можно, а такой пример: нашли 6 алмазов, стоят: 12 13 14 100 100 100 ответ: разделить нельзя. 
8 алмазов 25 13 5 5 5 6 12 4 разделить можно. 
С чего бы вы начали? Может есть такой алгоритм и он как-то называется замудрено?smile 

Сорри, опечатался, перепутал цены.

Это сообщение отредактировал(а) jezismaria - 1.5.2011, 15:19
PM MAIL   Вверх
_Y_
Дата 30.4.2011, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

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



Что-то ничего кроме метода Монте-Карло в голову не лезет.

.................................
Если же практически, то алмазы прекрасно делятся на того из старателей, кто лучше стреляет smile 


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
nworm
Дата 30.4.2011, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

25 13 5 5 5 6 12 4


Тут цифр больше 6-и, как же они их разделят?
Получается, что нельзя разделить, когда цифр больше чем алмазов. Вот и весь алгоритм.
PM MAIL WWW   Вверх
_Y_
Дата 1.5.2011, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

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



nworm, идея непонятна. Цифр-то всегда 10. Вряд-ли старатели знакомы с шестнадцатеричной системой счисления. smile 


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
nworm
Дата 1.5.2011, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Почему, отличная идея, по-моему, в первом случае 5 цифр, во втором целых 11. 

_Y_, а как 10 то получилось? Метода Монте-Карло задействован?
PM MAIL WWW   Вверх
esperanto
Дата 1.5.2011, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Методом полного перепора, эта задача класса НП.


--------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET
PM MAIL   Вверх
_Y_
Дата 1.5.2011, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

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



Цитата(nworm @  30.4.2011,  23:03 Найти цитируемый пост)
Получается, что нельзя разделить, когда цифр больше чем алмазов. Вот и весь алгоритм. 


Цитата(nworm @  1.5.2011,  12:44 Найти цитируемый пост)
Почему, отличная идея, по-моему, в первом случае 5 цифр, во втором целых 11. 
_Y_, а как 10 то получилось? Метода Монте-Карло задействован? 


Въехал! Это ты количество алмазов "количеством цифр" называешь. Странно, ну да ладно.

Скажем 11 алмазов (даже и простое число) надо разделить на 3 старателей (да еще и по-честному). По-твоему получается, что это невозможно. Но алмазы-то стОят, например:
5 4 4 4 2 2 2 2 2 2 1

Делим алмазы между персонажами:
5+4+1=10
4+4+2=10
2+2+2+2+2+2=10
Все по-честному получилось. smile  Другое дело, что не из каждого набора такое можно сделать.

Добавлено через 12 минут и 26 секунд
jezismaria, я вот подумал. До того как мучить метод Монте-Карло, можно осуществить простую проверку:

1. Делим стОимость каждого алмаза на наибольший общий делитель. Ну например, если есть набор алмазов стоимостью 45 60 300, то делим на 15 и получаем коэффициенты 3 4 20
2. Суммируем коэффициенты стоимости всех алмазов 3+4+20=26
3. Делим на число старателей 26/3=8,666666
Получилось число дробное - значит поделить честно нельзя. 


Если бы получилось число целое, можно было бы переходить к поиску комбинаций укладки алмазов в три кучки. Критерий: сумма коэффициентов стоимости алмазов в каждой кучке должна быть равна числу, полученному в результате предидущего рассчета.

Если алмазов не очень много - можно перебрать все варианты. А если очень - тогда как-то еще.

Это сообщение отредактировал(а) _Y_ - 1.5.2011, 20:29


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
Bitter
Дата 1.5.2011, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

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



Цитата(_Y_ @  1.5.2011,  20:28 Найти цитируемый пост)
А если очень - тогда как-то еще.

То тогда генным алгоритмом smile

Добавлено через 1 минуту и 26 секунд
Кстати похожие задачи (например распределение определенной суммы денег по разным банкам) решаются именно генетическим алгоритмом. Может стоит попробовать?
PM MAIL ICQ Skype   Вверх
_Y_
Дата 2.5.2011, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1651
Регистрация: 27.11.2006

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



Bitter, я подумал сначала про генетические алгоритмы, но не смог вообразить как положить такую задачу на хромосому. Опиши, пожалуйста. Интересно smile 


--------------------
Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:)
PM MAIL WWW   Вверх
esperanto
Дата 2.5.2011, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(_Y_ @ 2.5.2011,  12:04)
Bitter, я подумал сначала про генетические алгоритмы, но не смог вообразить как положить такую задачу на хромосому. Опиши, пожалуйста. Интересно smile

Задача принадлежит классу НП, ее решение экспоненциальные перебор.

В чем смысл генетических алгоритмов тут?
--------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


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

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


 




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


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

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