Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: помогите найти быстрый алгоритм решения задачи о стопке блинов!!  (Прочитано 20820 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ыыыга
Гость
« : 12-02-2009 11:22 » 

 :dontknow:кроме тупого перебора, ниче нет
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 12-02-2009 11:44 » 

А что за задача? Улыбаюсь
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 12-02-2009 11:45 » 

Ну так, а в чём проблема? Перебирай. Тупо.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 12-02-2009 12:23 » 

Ыыыыыы
*ушёл тупо перебирать*


зы докатились
Записан

Ыыыга
Гость
« Ответ #4 : 12-02-2009 12:23 » 

в том то и дело, что нужен более быстрый алгоритм. перебор не катит
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 12-02-2009 12:24 » 

Ыыыга, ты Ханойскую башню имеешь в виду ?
Записан

Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 12-02-2009 12:24 » 

А что за задача?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Ыыыга
Гость
« Ответ #7 : 12-02-2009 12:26 » 

да типа башни, только блины нужно на 1 тарелке переворачивать. в итоге нужно их положить по увеличению диаметра
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 12-02-2009 12:26 » 

Ну так, а в чём проблема? Перебирай. Тупо.
Offtopic:

Поскольку условие задачи мне неизвестно, а экстрасенсы в отпуске, то ничего не оставалось, как представить себе, что некто копается в стопке блинов и хочет отобрать самые аппетитные быстро-быстро, потому что полный перебор занимает много времени, и могут за этим занятием застукать
Поставлю в угол.

Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 12-02-2009 12:27 » 

я конечно поиском воспользовался... а вдруг не то?
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #10 : 12-02-2009 12:27 » 

с одной тарелкой не получится, надо как минимум 3
Записан

Ыыыга
Гость
« Ответ #11 : 12-02-2009 12:28 » 

почему не получится? берешь блины лопаточкой и переворачиваешь и вот так вот лопаточкой маешься, пока пирамидка не получится
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 12-02-2009 12:29 » 

Алексей1153++, ещё как получится.
Ыыыга, помимо "нужно на 1 тарелке переворачивать", есть какие-то ограничения? Механизм поворота блинов не раскрыт. В ханойских башнях перемещали по одному элементу. Тут явно не так.
Записан
Ыыыга
Гость
« Ответ #13 : 12-02-2009 12:30 » 

нет. просто переворачиваешь блины вверх ногами:)
Записан
Ыыыга
Гость
« Ответ #14 : 12-02-2009 12:31 » 

да хотьпо 10 блинов. без разницы. лишь бы уложить их
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #15 : 12-02-2009 12:31 » 

я бы просто съел все блины Улыбаюсь А потом кучка будет ровная
Записан

Ыыыга
Гость
« Ответ #16 : 12-02-2009 12:32 » 

я б тоже съел. тока как мне это преподу объяснять
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #17 : 12-02-2009 12:33 » 

А про диаметр блинов всё известно? Если да, самое очевидное напрашивающееся решение - подхватываем самый широкий блин, переворачиваем стопку, чтобы он оказался наверху, потом переворачиваем всё вместе - оп, первый блин внизу. И так 2*n переворотов. На двусвязных списках будет быстро работать.
Записан
Ыыыга
Гость
« Ответ #18 : 12-02-2009 12:34 » 

1-й кто нашел оптимальный способ это Билл
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 12-02-2009 12:34 » 

Offtopic:

про Билли
История, рассказанная небезызвестным проф. Пападимитриу.

Когда Пападимитриу только защитился и приступил к преподавательской деятельности в Гарварде, он задал студентам задачку, которая казалась ему не особо сложной, но тем не менее сразу ему не далась. И пообещал тому, кто ее решит, поставить по своему курсу A (5 по-нашему). Задачка (ныне известная как pancake flipping problem) такая:

Представьте, что у вас есть стопка из n блинов разного диаметра. Разрешается взять верхнюю "подстопку" из k блинов (k - любое) и перевернуть ее. Требуется за минимальное число таких переворотов отсортировать блины в стопке согласно их диаметру.

Hикакой ответной реакции со стороны студентов не последовало, и только в конце семестра к Пападимитриу подошел студент, который сказал, что не знает, как решить эту задачу, но у него есть кое-какие идеи. После совместного обсуждения эти идеи вылились в статью

W.H.Gates, C.H. Papadimitriou "Bounds for sorting by prefix reversals". - Discrete Mathematics, 27:47-57, 1979. (обзор алгоритма)

Через некоторое время после выхода статьи Пападимитриу позвонил профессор из другого университета и сказал, что он только что познакомился со статьей, она произвела на него сильное впечатление, и он хотел бы пригласить "этого студента" на собеседование на непомнюкакую должность. Пападимитриу ему ответил, что студент к сожалению бросил учебу и организовал компанию Microsoft...
Поставлю в угол.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Ыыыга
Гость
« Ответ #20 : 12-02-2009 12:35 » 

А про диаметр блинов всё известно? Если да, самое очевидное напрашивающееся решение - подхватываем самый широкий блин, переворачиваем стопку, чтобы он оказался наверху, потом переворачиваем всё вместе - оп, первый блин внизу. И так 2*n переворотов. На двусвязных списках будет быстро работать.
интересно... спасибо попробую. если меня загубят снова зайду
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #21 : 12-02-2009 12:38 » 

Ага, точнее, там чуть меньше, чем 2*n будет. Сходил в вики - так не интересно, там тот же метод описан.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 12-02-2009 12:39 » 

можно взять уже предложенное

* paper.pdf (33.22 Кб - загружено 1162 раз.)
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Ыыыга
Гость
« Ответ #23 : 12-02-2009 12:43 » 

 Класс!
Записан
Ыыыга
Гость
« Ответ #24 : 22-04-2009 05:16 » 

эт снова я и снова с блинами Жаль
короче препод сказал, что алгоритм Гейтса ему нафиг не нужен. Он хочет, чтобы я как бы оптимизировал алгоритм полного перебора для этих чертовых блинов, т.е. когда перебор начнет "вставать". К примеру полный перебор может работать и для 100 блинов, если 99 из них уже упорядочены, но этот же алгоритм может встать, допустим, на 5 блинах, если они лежат как попало.
Вот такая вот нехорошая штука получается...
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #25 : 22-04-2009 19:31 » new

Похоже, преподаватель хочет видеть решение методом "ветвей и границ".

Рассматривай комбинацию блинов в стопке как одно целое. Для комбинации введи весовой коэффициент близости к решению. Дальше строй дерево перестановок, но по дереву (от перестановки к новой перестановке) спускайся так, чтобы на каждом шаге весовой коэффициент улучшался бы. Переходы между комбинациями ограничены условием задачи (переворачивание верхней подстопки). Рекурсивное решение получится.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines