Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите решить задачу, на Visual Prolog 
:(
    Опции темы
Gonzalez
Дата 22.5.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день!
Пожалуйста, помогите решить задачку.  Я с Прологом не очень дружу ... не совсем понял как считать сколько фруктов взял каждый ребенок, и как посчитать, что он солгал именно столько раз,сколько взял фруктов. И как записать выражения 5, 6 и выражения в конце задачи - I), II)?????? 
Всем ответившим,спасибо!


ЗАДАЧА:
Поскольку красивая фарфоровая тарелка была уже разбита, на столе стояло лишь простое стеклянное блюдо, но оно было пусто: 4 яблока и 4 банана, которые мама оставила детям на ужин, исчезли!
Мама очень рассердилась и потребовала, чтобы те, кто без разрешения взял яблоки и бананы, признались. Поднялся страшный гвалт: Юльчи, Эржи, Пишта и Иошка наперебой старались перекричать друг друга.
(1) Юльчи. Я не трогала яблок!
(2) Пишта. Но ведь я же взял с блюда...
(3) Иошка. Первой яблоко взяла Юльчи!
(4) Пишта. Это девчонки начали растаскивать фрукты с блюда!
(5) Эржи (Пиште). Помалкивал бы уж, лучше! А то один раз скажешь правду, а после этого непременно два раза соврешь!
(6) Иошкa. Ты еще споришь? Это вы, девчонки, во всем виноваты и сейчас, и в прошлый раз!
(7) Юльчи. Мальчишки первыми расхватали бананы!
(8) Пишта, (обращаясь к Юльчи). Расскажи-ка лучше, как ты взяла яблоко!
(9) Эржи. Да Иошка один взял больше половины всех яблок!
(10) Иошка (обращаясь к Эржи). Неправда!
(11) Эржи. Пишта взял яблоко и банан!
(12) Иошка. Юльчи не брала бананы!
(13) Юльчи.. Мальчишки ни разу не сказали правду!
(14) Пишта. Обе девчонки врут!
Согласитесь: докопаться до истины маме было нелегко, но она сумела все выяснить. Оказалось, что
I) лишь один из четырех детей говорил только правду;
II) каждый из детей солгал столько раз, сколько фруктов (яблок и бананов) он взял с блюда.
Сколько яблок и сколько бананов взяли с блюда каждый из четырех маленьких «разбойников»?



МОЁ РЕШЕНИЕ:

domains
mesto = symbol
spisok = mesto*
nomer = integer

predicates
nondeterm vyskazyvanie(nomer,mesto,mesto)
nondeterm vyskazyvanie(nomer,mesto,mesto,mesto)
nondeterm vyskazyvanie(nomer,mesto,mesto,mesto,mesto,mesto)
nondeterm vyyasnit(mesto,mesto,mesto,mesto,mesto,mesto,mesto,mesto)
clauses

%1. Yulchi: Ya ne trogala yablok
vyskazyvanie(1,Yulchi,Yulchi_Yabloki):- Yulchi_Yabloki=0.

%2. Pishta: No ved ya vzyal s blyuda
vyskazyvanie(2,Pishta,Pishta_Yabloki,Pishta_Banan):- Pishta_Yabloki>0;Pishta_Banan>0.

%3. Ioshka: Pervoy yabloka vzyala Yulchi
vyskazyvanie(3,Ioshka,Yulchi_Yabloki):- Yulchi_Yabloki>0.

%4. Pishta: Eto devochki nachali brat frukty s blyuda
vyskazyvanie(4,Pishta,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan):- Yulchi_Yabloki>0;Yulchi_Banan>0;Erzhi_Yabloki>0;Erzhi_Banan>0.

%5. Erzhi: Pomalkival by!A to 1 raz skazhesh pravdu,a posle etogo 2 raza sovresh
%vyskazyvanie(5,Erzhi,???):- ???.

%6. Ioshka: Ty eshe sporish? Eto vy,devchonki,vo vsem vinovaty i seychas i v proshlyi raz
vyskazyvanie(6,Ioshka,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan):- Yulchi_Yabloki+Erzhi_Yabloki=4,Yulchi_Banan+Erzhi_Banan=4.

%7. Yulchi: Malshiki pervymi rashvatali banany
vyskazyvanie(7,Yulchi,Ioshka_Banan,Pishta_Banan):- Ioshka_Banan+Pishta_Banan=4.

%8. Pishta: Yulchi,rasskazhi kak ty vzyala yabloko
vyskazyvanie(8,Pishta,Yulchi_Yabloki):- Yulchi_Yabloki=Yulchi_Yabloki+1.

%9. Erzhi: Ioshka vzyal bolshe poloviny vseh yablok
vyskazyvanie(9,Erzhi,Ioshka_Yabloki):- Ioshka_Yabloki>2.

%10. Ioshka: Obrashayas k Erzhi: Nepravda!
vyskazyvanie(10,Ioshka,Ioshka_Yabloki):- not(vyskazyvanie(9,Erzhi,Ioshka_Yabloki)).

%11. Erzhi: Pishta vzyal yabloko i banan.
vyskazyvanie(11,Erzhi,Pishta_Banan,Pishta_Yabloki):- Pishta_Banan=1,Pishta_Yabloki=1.

%12. Ioshka: Yulchi ne brala banany
vyskazyvanie(12,Ioshka,Yulchi_Banan):- Yulchi_Banan=0.

%13. Yulchi: Malchiki ni razu ne skazali pravdu
vyskazyvanie(13,Yulchi,_,_):- 
not(vyskazyvanie(2,Pishta,Pishta_Yabloki,Pishta_Banan)),
not(vyskazyvanie(3,Ioshka,Yulchi_Yabloki)),
not(vyskazyvanie(4,Pishta,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan)),
not(vyskazyvanie(6,Ioshka,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan)),
not(vyskazyvanie(8,Pishta,Yulchi_Yabloki)),
not(vyskazyvanie(10,Ioshka,Ioshka_Yabloki)),
not(vyskazyvanie(12,Ioshka,Ioshka_Banan)),
not(vyskazyvanie(14,Pishta,_,_)).

%14. Pishta: Obe devchonki vrut
vyskazyvanie(14,Pishta,_,_):- 
not(vyskazyvanie(1,Yulchi,Yulchi_Yabloki)),
not(vyskazyvanie(7,Yulchi,Ioshka_Banan,Pishta_Banan)),
not(vyskazyvanie(9,Erzhi,Ioshka_Yabloki)),
not(vyskazyvanie(11,Erzhi,Pishta_Banan,Pishta_Yabloki)),
not(vyskazyvanie(13,Yulchi,_,_)).

vyyasnit(Yulchi_Yabloki,Yulchi_Banan,Pishta_Banan,Pishta_Yabloki,Ioshka_Banan,Ioshka_Yabloki,Erzhi_Yabloki,Erzhi_Banan):-
    vyskazyvanie(1,Yulchi,Yulchi_Yabloki),
    vyskazyvanie(2,Pishta,Pishta_Yabloki,Pishta_Banan),
    vyskazyvanie(3,Ioshka,Yulchi_Yabloki),
    vyskazyvanie(4,Pishta,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan),
    vyskazyvanie(6,Ioshka,Yulchi_Yabloki,Yulchi_Banan,Erzhi_Yabloki,Erzhi_Banan),
    vyskazyvanie(7,Yulchi,Ioshka_Banan,Pishta_Banan),
    vyskazyvanie(8,Pishta,Yulchi_Yabloki),
    vyskazyvanie(9,Erzhi,Ioshka_Yabloki),
    vyskazyvanie(10,Ioshka,Ioshka_Yabloki),
    vyskazyvanie(11,Erzhi,Pishta_Banan,Pishta_Yabloki),
    vyskazyvanie(12,Ioshka,Ioshka_Banan),
    vyskazyvanie(13,Yulchi,_,_),
    vyskazyvanie(14,Pishta,_,_).
    
goal
vyyasnit(Yulchi_Yabloki,Yulchi_Banan,Pishta_Banan,Pishta_Yabloki,Ioshka_Banan,Ioshka_Yabloki,Erzhi_Yabloki,Erzhi_Banan).


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума Prolog
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

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

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


 




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


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

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