![]() |
|
|
![]()
|
|
| Gonzalez |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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). |
|||
|
||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |