Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Prolog] Пожалуйста помогите с задачкой 
:(
    Опции темы
GiDe0n
Дата 26.5.2007, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.

На зачете в университете преподаватель потребовал решить задачку на языке Prolog (к сожалению для меня это совсем в новинку, а времени разобраться как следует нет ;( ).

Вот такая вот задача: Проверить, можно ли один список получить из другого путем удаления двух рядом стоящих элементов.

Заранее благодарен за любую помощь.

ЗЫ Если возможно, то поясните решение комментариями

PM MAIL   Вверх
cherep
Дата 27.5.2007, 03:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 11.1.2006
Где: Москва

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



У меня получилось как-то так:

Код

isL(List1, List2):-
  append(F, L, List2),
  write(F),write(+),write(L),nl,
  append(F, L1, List1),
  (append(L, [_, _], L1);append([_,_], L, L1)).


Применение:
Код

57 ?- isL([a,b,c,d,e,f], [a,b,c,f]).
[]+[a, b, c, f]
[a]+[b, c, f]
[a, b]+[c, f]
[a, b, c]+[f]

Yes
58 ?- isL([a,b,c,d,e,f], [a,b,c,g]).
[]+[a, b, c, g]
[a]+[b, c, g]
[a, b]+[c, g]
[a, b, c]+[g]
[a, b, c, g]+[]

No


Вывод можно закомментировать. Код для SWI-Prolog
PM MAIL WWW ICQ   Вверх
GiDe0n
Дата 27.5.2007, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



cherep, Огромное Вам спасибо!  smile 
PM MAIL   Вверх
saint111
Дата 28.5.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите, очень надо решить задачу!!!!!!!!!!!

Весть о том, что Холмс умеет «вычислять» фамилии людей быстро разнеслась среди отдыхающих на пляже. 
    Желающих проверить эти способности Холмса было много. Однажды, например, к Холмсу подошли пятеро молодых людей, 
    которые представились как Леонид, Сергей, Николай, Олег и Петр. Они сказали, что фамилии у них такие: Антонов, 
    Борисов, Васильев, Дроздов и Иванов. Кроме того, они сообщили о себе такие сведения.
        Петр знаком со всеми кроме одного. Борисов знаком только с двумя. Леонид знает только одного из всех. 
    Дроздов и Сергей незнакомы. Николай и Иванов хорошо знают друг друга. Сергей, Николай и Олег давно знакомы между собой. 
    Антонов знаком только с Петром.
        Холмс сказал, что этих сведений достаточно. Через некоторое время он действительно установил фамилии этих ребят. 
    Каким же был ответ Холмса?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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