Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Prolog
Перезагрузить страницу Все комбинации из элементов списка
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
CKY CKY вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.12.2010
Post Все комбинации из элементов списка - 02.12.2010, 02:28

Никак не могу придумать алгоритм и набор необходимых предикатов для поиска всех вариантов из имеющихся элементов списка...
Т.е. если список на входе [1,2] - на выходе [ [1,2], [2,1] ]
если на входе [1,2,3] - то выход [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
и так далее...
Подскажите как можно сделать, пожалуйста...
Если уже было такое - дайте ссыль на тему..
Ответить с цитированием
  (#2 (permalink)) Старый
aag aag вне форума
А.А.Г.
 
Аватар для aag
 
Сообщений: 3,397
Сказал(а) спасибо: 0
Поблагодарили 82 раз(а) в 82 сообщениях
Регистрация: 29.11.2008
Адрес: Адмиралтейская)))
По умолчанию 02.12.2010, 03:12

prolog Код:
DOMAINS
i=integer   il=i*

PREDICATES
mix(il,il)
mm(il,i,il)

CLAUSES
mix([],[]):- !.
mix(A,[B|C]):- mm(A,B,D), mix(D,C).

mm([A|B],A,B).
mm([A|B],C,[A|D]):- mm(B,C,D).

prolog Код:
Goal: mix([1,2,3], Out)
Out=[1,2,3]
Out=[1,3,2]
Out=[2,1,3]
Out=[2,3,1]
Out=[3,1,2]
Out=[3,2,1]
6 Solutions


импортирован с progz.ru
Ответить с цитированием
  (#3 (permalink)) Старый
CKY CKY вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 02.12.2010
По умолчанию 02.12.2010, 12:06

Красивое решение! У меня получалось только как-то громоздко и в итоге запутывался в логике....
Огромное спасибо!
Ответить с цитированием
Ads
Ответ

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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сумма элементов списка.. Trevon Prolog 2 09.02.2011 21:40
Удаление элементов списка, согласно номерам второго списка SWI-Prolog 5.8.2 imported__ro Prolog 11 13.01.2011 02:01
Нужно посчитать кол-во элементов списка altair9528 Prolog 1 21.12.2010 00:20
Написать программу преобразования списка которая реверсирует n элементов списка Ma3day Prolog 4 14.11.2010 14:07
Перестановка элементов списка и вывод swdmitriy Prolog 1 05.06.2010 18:19
циклический сдвиг элементов списка denis120 Prolog 2 03.05.2010 15:30
Обмен местами элементов списка krowka Prolog 31 18.01.2010 08:47
Удаление элементов из списка Kate&Lena Prolog 9 11.05.2009 20:57
Выделение элементов из списка McClain Prolog 3 07.11.2007 00:33
K последних элементов списка. Не1еn Prolog 4 13.06.2007 11:28
Удаление I*N элементов из списка Kate_Explorer Prolog 7 17.01.2006 20:06
Сумма и произведение элементов списка TKN Prolog 3 11.01.2006 03:28



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