Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/40: Рейтинг темы: голосов - 40, средняя оценка - 4.65
 Аватар для Ma3day
4 / 4 / 4
Регистрация: 18.10.2010
Сообщений: 20

Задание по прологу по типу "волк коза и капуста"

16.11.2010, 17:48. Показов 7952. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача о миссионерах и каннибалах.
Три миссионера и три каннибала находятся на левом
берегу реки. Все хотят перебраться на другой берег. Здесь
же небольшая лодка, вмещающая не более двух человек.
Если на каком-то берегу каннибалов окажется больше, чем
миссионеров, то они съедят миссионеров. Если окажется
больше миссионеров, то они обратят каннибалов в свою веру.
Найти последовательность ездок, гарантирующую безопасность
миссионерам и свободу вероисповедания каннибалам.
заранее благодарен)
2
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2010, 17:48
Ответы с готовыми решениями:

Волк, коза и капуста через БД?
Здравствуйте. Скажу сразу, облазил всё что мог, но найти мой вариант решения этой головоломки я не смог. У меня есть только вывод...

Решение задачи "Волк, коза и капуста" (но с более сложным условием)
Человеку в трехместной лодке нужно переправиться на другой берег с козлом, капустой, двумя волками и собакой, причем собака в ссоре с...

Волк, коза и капуста
на одном берегу вовк, коза и капуста, как их переправить на 2 берег лодкой я знаю, а вот как ето запрограмировать незнаю((( подскажите!!!...

32
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
18.12.2011, 17:38
Студворк — интернет-сервис помощи студентам
Значит вам надо ити в школу 1-11 класс, а не универ
0
0 / 0 / 0
Регистрация: 12.12.2011
Сообщений: 14
18.12.2011, 17:50
Надо научиться объяснять нормальным языком, а не строить из себя бог весь кого
0
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
18.12.2011, 18:05
надо научится читать, а не
Цитата Сообщение от elfy Посмотреть сообщение
строить из себя бог весь кого
0
0 / 0 / 0
Регистрация: 12.12.2011
Сообщений: 14
18.12.2011, 18:06
бла бла, закрыли тему.
Всем спасибо
0
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
18.12.2011, 18:19
Омг ну и дураки пошли

Добавлено через 4 минуты
Ешь рыбу от нее умнеют
Цитата Сообщение от freest Посмотреть сообщение
А если требуется сохранить веру каннибалов, то надо поменять это
Код Prolog1 ableState(X, Y):-X=Y;X=0;X=3.
на это
Код Prolog1 ableState(X, X).
0
0 / 0 / 0
Регистрация: 12.12.2011
Сообщений: 14
18.12.2011, 18:24
Ты сам то пробовал заменять??!
Ответ No solutions тебя видимо устроил, да?
0
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
18.12.2011, 18:26
Лол
Мб это показывает, что решений задачи нету???
0
0 / 0 / 0
Регистрация: 12.12.2011
Сообщений: 14
18.12.2011, 18:30
Это показывает, что предложенное тобой решение неверное.
Решение есть! реши на бумаге и ты его увидишь.
А предлагать неправильное решение задачи и указывать на него как истинное это очень глупо
0
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
18.12.2011, 18:34
Бедолага, напиши его, если оно есть
0
0 / 0 / 0
Регистрация: 12.12.2011
Сообщений: 14
18.12.2011, 18:38
[state(1,1,"turnright"),state(1,0,"turnle ft"),state(0,2,"turnright"),state(0,1,"t urnleft"),state(2,0,"turnright"),state(1 ,1,"turnleft"),state(2,0,"turnright"),st ate(0,1,"turnleft"),state(0,2,"turnright "),state(1,0,"turnleft"),state(1,1,"turn right")]


оно наверное неправильное, да ведь? ведь твоя программа не может ошибаться
0
Українець
424 / 318 / 16
Регистрация: 26.09.2009
Сообщений: 844
18.12.2011, 18:45
Бедняшка, это правильное для другого условия когда миссионеров может быть больше чем каннибалов)) сходи покушай рыбки, а потом умничай
0
 Аватар для Грымзик
2507 / 1483 / 37
Регистрация: 14.09.2009
Сообщений: 2,740
18.12.2011, 19:05
Можно было бы и повежливей разговаривать. elfy, по-моему Вы вообще ни в чем не можете упрекать freest-а, что бы он не писал. В любом случае, он вам помог. А если не нравиться, то ищите помощи в другом месте.
Предложенное Вами решение действительно не соответствует условиям. Ведь будет например момент, когда на левом берегу 3 миссионера и к нему подплывает лодка с каннибалом. Имеется решение только если считать, то высадка и посадка в лодку моментально происходит. Тогда задача усложняется, т.к в состояние надо вводить еще один параметр - текущее положение в лодке. Я бы не парилась и сдавала бы текущий вариант, думаю, что с Вас больше и не требуется.
0
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 7
27.04.2013, 09:35
Доброе утро! помогите пожауйста! задача - Три миссионера и три каннибала находятся на левом берегу реки. Здесь же двухместная лодка. Все хотят перебраться на другой берег. Если на каком-либо берегу каннибалов окажется больше, чем мессионеров, то последних съедят. Найти посмледовательность поездок, при которой все переберуться на другой берег без потерь.
На этом форуме я нашла текст программы:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
implement main
   open core
   open console
    open list
constants
    className = "main".
    classVersion = "".
domains
сост = tuple(symbol, integer*, integer*).
путь = сост*.
class predicates
поиск_в_ширину: (сост, сост) -> путь determ.
поиск_в_ширину: (путь*, сост*, сост) -> путь determ.
переход: (сост) -> сост nondeterm.
перевезти: (integer, integer*, integer*, integer*, integer*) nondeterm (i,i,i,o,o). 
clauses
    classInfo(className, classVersion).
поиск_в_ширину(X, Y) = поиск_в_ширину([[X]], [X], Y).
 
поиск_в_ширину([[Y | П] | _], _, Y) = [Y | П]:- !.
поиск_в_ширину([[X | П] | Пути], Состояния, Y) = поиск_в_ширину(НовПути, Состояния1, Y):-
    Продолжения = [[Z, X| П] || Z = переход(X), not(isMember(Z, Состояния))],
            НовПути = append(Пути, Продолжения),
            Вершины = [V || [V | _] = getMember_nd(Продолжения)],
            Состояния1 = append(Вершины, Состояния).
 
переход(tuple("л", Л, П)) = tuple("п", Л1, П1):-
    N = std::fromTo(1, 2),
    перевезти(N, Л, П, Л1, П1).
переход(tuple("п", Л, П)) = tuple("л", Л1, П1):-
    N = std::fromTo(1, 2),
    перевезти(N, П, Л, П1, Л1).        
 
перевезти(N, [КДо, МДо], [КПосле, МПосле], [КДо-КЛ, МДо-МЛ], [КПосле+КЛ, МПосле+МЛ]):- 
    КЛ = std::fromTo(0, КДо),
    КЛ <= N, 
    МЛ = N - КЛ,
    МЛ <= МДо,  
    if МДо-МЛ > 0 then КДо-КЛ <= МДо-МЛ end if,
    if МПосле+МЛ > 0 then КПосле+КЛ <= МПосле+МЛ end if.
class facts
    счетчик : positive := 0.
clauses
    run():-
     TaskWindow = taskWindow::new(),
        TaskWindow:show(),
         init(),
        Старт = tuple("л", [3, 3], [0, 0]),  
        Цель= tuple("п", [0, 0], [3, 3]), 
        Путь = поиск_в_ширину(Старт, Цель), 
        foreach tuple(Берег, Левый, Правый) = getMember_nd(reverse(Путь)),
                Левый = [КЛ, МЛ], Правый = [КП, МП]
          do 
            writef("%. На левом берегу: % кан. и % мис.; на правом берегу: % кан. и % мис. \n", 
                   счетчик, КЛ, МЛ, КП, МП),
            if Берег = "л" 
               then write("\tлодка отправляется с левого берега на правый\n\n")
               else if not(Левый = [0, 0]) then 
                      write("\tлодка отправляется с правого берега на левый\n\n") end if
             end if,
             счетчик := счетчик + 1
        end foreach,
        !, 
        _ = readLine();
        succeed().  
end implement main
 
goal
mainExe::run(main::run).
но дело в том, что на том прологе, на котором мы работаем, подобные тексты не идут(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.04.2013, 09:35

Волк, коза, капуста(заезженная тема)
Решить задачу про Волка, козу и капусту на прологе 1.0(или это swi пролог...фиг знает)....посмотрел всевозможные решения в инете..исправить...

Подскажите как запустить игру Волк коза и капуста на xlisp
Есть исходник, лисп загружаю ее на xlisp через (load&quot;igra.lsp&quot;) дальше не знаю как реализовать . подскажите (defun is_in (k lst) ...

Волк Коза и Капуста: Просмотреть все возможные варианты перевозок и выбрать наикратчайший вариант
Доброе время суток, форумчане. Сразу к делу. предмет называется &quot;Искусственный Интеллект&quot;. Нужно решить эту задачу про волка, козу и...

Программа "Волк, коза и капуста"
Люди, помогите пожалуйста, срочно, в пятницу (15,04) надо сдавать. &quot;Волк, коза и капуста&quot;. Задание: для вывода изображений...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru