Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Problem
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
AD20 AD20 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.12.2006
По умолчанию 20.12.2006, 19:19

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

На одной из больших спартакиад состоялись грандиозные открытые соревнования
по фехтованию. Любой фехтовальщик мог вызвать на поединок любого другого. На
каждого участника соревнований организаторы олимпиады заводили специальный лист,
на который заносили фамилии тех, над кем данному спортсмену, удавалось одеерживать
победу. По замыслу устроителей, судьи после окончания соревнований должны будут
подсчитать фамилии на каждом листе и обхявить победителем того фехтовальщика, на
чьем листе фамилий окажется больше, чем на других (ничьих не бывает в фехтовании.)
Состоялся большой многодневный турнир (ввиду большого количества участников
поединки пришлось проводить под открытчм небом). По окончании турнира приступили
к подсчету фамилий на листах, чтобы определить, как распределились
места среди участников турнира. Едва судейская коллегия успела определить
спортсменов, занявших первые восемь мест, как внезапный порыв ветра подл все
остальные листы и разбросал их в беспорядке по всему стадиону. На столе перед судьями
остались лишь листы восьми победителей турнира.
Члены судейской коллегии, торопливо отложив в сторону чудом сохранившиеся листы,
бросились собирать остальные. Всоре они вернулись, неся целые охапки протоколов,
но разве можно быть уверенными, что удалось собраит все листы. Вот еслибы сохранился
хотя бы список всех участников турнира! Но, к сожалению, его унесло порывом ветра,
и он бесследно исчез.
- Что же делать? Мы же не знаем, ни сколько спортсменов принимало участие
в соревнованиях, ни исходов поединков? - в отчаянии размышляли судьи. И тут
одному из них пришла в голову блестящая мысль.
- Нужно перебрать один за другим листы всех 8 победителей и прочитать
все значащиеся фамилии, - предложил он. - Ведь эти-то листы сохранились?
После лихорадочных поисков выяснилось, что листы всез спортсменов, чьи
имена оказались вписанными в листы восьми победителей, имеются среди собранных.
По этим листам тот судья, которому пришла спасительная мысль, сумел восстановить
распределение мест среди остальных участников соревнований.
Как он это сделал?

(Visual Prolog or Turbo Prolog). 8-)
Ответить с цитированием
  (#2 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 20.12.2006, 22:27

Не слишком понятно. Каждый ли играл с каждым?
Ответить с цитированием
  (#3 (permalink)) Старый
AD20 AD20 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.12.2006
По умолчанию 21.12.2006, 10:54

Цитата:
Не слишком понятно. Каждый ли играл с каждым?
Судя по названию турнира - нет. Каждый играл с тем, с кем захотел.
Ответить с цитированием
  (#4 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 21.12.2006, 12:00

Наверное, это задача на графы.
Трудно что-либо сказать. Неужели здесь Пролог может как-то помочь? Интересно, и если да, то приведите, пожалуйста, решение, когда его найдете.
Ответить с цитированием
  (#5 (permalink)) Старый
AD20 AD20 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.12.2006
По умолчанию 21.12.2006, 21:57

Цитата:
Наверное, это задача на графы.
Трудно что-либо сказать. Неужели здесь Пролог может как-то помочь? Интересно, и если да, то приведите, пожалуйста, решение, когда его найдете. :-)
AAA! Плиз, помогите! :)
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Винитарх Винитарх вне форума
Специалист
 
Аватар для Винитарх
 
Сообщений: 7,958
Сказал(а) спасибо: 2
Поблагодарили 303 раз(а) в 303 сообщениях
Регистрация: 01.03.2003
Адрес: Краснодар
По умолчанию 22.12.2006, 20:46

Условие Вашей задачи столь велико, что лично я даже не брался его читать.
Вы сами подумайте, будет ли кто-нибудь заниматься столь кропотливой задачей, вникать во все нюансы???
Вам бы следовало привести свои исходники и ЗАДАТЬ КОНКРЕТНЫЕ ВОПРОСЫ о том, что у Вас не получается.
Ответить с цитированием
  (#7 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 24.12.2006, 17:08

AD20, не поделитесь, откуда эта задача?

Допустим, что некий фехтовальщик Иванов проиграл кому-то из тех, кто проиграл победителю. А протокола на него не сохранилось. Тогда про него ничего нельзя сказать, кроме того, что число одержанных им побед меньше, чем число побед у 8-го победителя. Он мог выиграть и у некоторых победителей, и у тех, кто им проиграл, и у тех, кто не является проигравшим кому-либо из тех, кто проиграл победителям. Тогда, не имея никакой дополнительной информации, нельзя восстановить результаты. А раз судья смог, значит, таких, как Иванов, нет.
Вообще, раз ничего не известно, то восстановить результаты можно только если протоколы сохранились на всех. Может, условие приведено не совсем полное?
Ответить с цитированием
  (#8 (permalink)) Старый
AD20 AD20 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.12.2006
По умолчанию 25.12.2006, 10:37

Цитата:
AD20, не поделитесь, откуда эта задача?

Допустим, что некий фехтовальщик Иванов проиграл кому-то из тех, кто проиграл победителю. А протокола на него не сохранилось. Тогда про него ничего нельзя сказать, кроме того, что число одержанных им побед меньше, чем число побед у 8-го победителя. Он мог выиграть и у некоторых победителей, и у тех, кто им проиграл, и у тех, кто не является проигравшим кому-либо из тех, кто проиграл победителям. Тогда, не имея никакой дополнительной информации, нельзя восстановить результаты. А раз судья смог, значит, таких, как Иванов, нет.
Вообще, раз ничего не известно, то восстановить результаты можно только если протоколы сохранились на всех. Может, условие приведено не совсем полное?
Условие я привел полное, это точно. Не совсем понимаю, что от меня хотят, поэтому трудно составить алгоритм.
Насколько я понял, если хоть раз проигрывал фехтовальщик, то он вылетал из турнира! Мне как кажется, если бы это был алгоритм на С++, то выглядел бы он, приблизительно так [словесно]: завести массив структур (фамилия, кол-во выиигранных партий), отсортировать его по кол-ву выигранных партий.

TO ^Винитарх
Если Вы приведете решение на ПРОЛОГЕ, буду очень признателен!
Ответить с цитированием
  (#9 (permalink)) Старый
AD20 AD20 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.12.2006
По умолчанию 25.12.2006, 19:08

ну хоть кто-нибудь, помогите! Пожалуйста!
Ответить с цитированием
  (#10 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 25.12.2006, 22:04

Цитата:
Не совсем понимаю, что от меня хотят
Если Вы не поймете, что от Вас хотят, и не сможете объяснить это другим, то никто не сможет Вам помочь.
А что именно от Вас хотят, вы можете уточнить только у того, кто дал Вам эту задачу.
Ответить с цитированием
  (#11 (permalink)) Старый
AD20 AD20 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.12.2006
По умолчанию 26.12.2006, 10:29

Цитата:
Насколько я понял, если хоть раз проигрывал фехтовальщик, то он вылетал из турнира! Мне как кажется, если бы это был алгоритм на С++, то выглядел бы он, приблизительно так [словесно]: завести массив структур (фамилия, кол-во выиигранных партий), отсортировать его по кол-ву выигранных партий.

А ЧТО ТОГДА ЭТО? Разве это не объяснение того, как я понял задачу?!!! ;-)
Ответить с цитированием
  (#12 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 26.12.2006, 20:55

Объяснение должно быть не того, как Вы поняли задачу, а того, что "от Вас хотят".
Я, например, пока не вижу здесь никакой осмысленной задачи.

По поводу выбывания побежденных из турнира. Это говорит только о том, что не может быть циклов следующего вида: A победил B, B победил C, ...., X победил D, D победил A.
Вот такого быть не должно. Восстановить результаты судья опять сможет только в том случае, если на руках у него будут все протоколы. Путем сортировки по количеству фамилий. Более ничего сказать не могу.
Ответить с цитированием
Ads
  (#13 (permalink)) Старый
AD20 AD20 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.12.2006
По умолчанию 26.12.2006, 21:38

Цитата:
Объяснение должно быть не того, как Вы поняли задачу, а того, что "от Вас хотят".
Я, например, пока не вижу здесь никакой осмысленной задачи.

По поводу выбывания побежденных из турнира. Это говорит только о том, что не может быть циклов следующего вида: A победил B, B победил C, ...., С победил D, D победил A.
Вот такого быть не должно. Восстановить результаты судья опять сможет только в том случае, если на руках у него будут все протоколы. Путем сортировки по количеству фамилий. Более ничего сказать не могу.
Значит так-с:
1. У судей есть листки 1 восьми победивших!
2. Плюс к этому у судей есть какое-то кол-во листков остальных участников!
3. Сравнивая фамилии на этих листках можно узнать места участников, ведь проигравший может бороться за место, например, в 20-ке!
Ответить с цитированием
  (#14 (permalink)) Старый
Alison Alison вне форума
Member
 
Сообщений: 4,781
Сказал(а) спасибо: 0
Поблагодарили 119 раз(а) в 116 сообщениях
Регистрация: 17.11.2004
По умолчанию 26.12.2006, 21:41

Нельзя в общем случае узнать, сколько раз участник выиграл, если на него не сохранилось протокола.
Ответить с цитированием
  (#15 (permalink)) Старый
AD20 AD20 вне форума
Новичок
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 20.12.2006
По умолчанию 28.12.2006, 13:50

Цитата:
Нельзя в общем случае узнать, сколько раз участник выиграл, если на него не сохранилось протокола.
ХМ.... Оффтоп вместо помощи! Проффессионалы, блин.... ФУ
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
a problem has been detected and windows has been shut down to prevent damage to your denix Любые вопросы от новичков 15 13.01.2012 03:45
PROBLEM с производительностью ПК! Grozkif Любые вопросы от новичков 78 25.08.2011 17:29
Wildcard characters problem on Windows как исправить AndOr Python 2 09.11.2010 11:04
Серьёзный Problem ! Soloveyka Накопители 13 18.08.2010 14:00
Как включить Windows Problem Reporting ? anton682 Любые вопросы от новичков 3 22.04.2010 12:54
VS2008+ dynamic library problem tatvisio Visual C++ 6 05.11.2009 15:05
Сообщение: A problem has been detected and windows has been shut down... dimazz79 Накопители 10 26.07.2008 19:09
Problem Solving Flowchart Vladimir the Red Sunny Юмор 7 25.01.2008 12:47
Problem with Tablespace SYSAUX Kim_X Oracle 0 05.11.2006 14:07
Problem Setup Microsoft SQL Server 7.0 CompilR MSSQL Server 0 26.03.2006 04:08
Big problem с запросом к бд !!! vipper PHP 1 16.03.2004 11:21
Sound Card problem как исправить ошибки Anonymous Железо. Написание драйверов 0 29.07.2003 18:48



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов