Результаты поиска по запросу "prolog"
Заполнить список в SWI-Prolog
Я пытаюсь заполнить список заданной длины N числами 1,2,3, ..., N. Я думал, что это можно сделать так: create_list(N,L) :- length(L,N), forall(between(1,N,X), nth1(X,L,X)). Однако, похоже, это не работает. Кто-нибудь может сказать, что я ...
Как узнать количество инверсий в списке в Прологе
Как новичок в Прологе, я хочу выяснить, как можно посчитать количество инверсий в списке. Я знаю, как сгладить матрицу, используяflatten(Matrix, FlatMatrix), таким образом создавая переменную, которая содержит один набор элементов в ...
Нахождение самого длинного непрерывного подсписка в Прологе
Я новичок в Прологе, и это мой вопрос: У меня есть отсортированный список целых чисел без дубликатов, т. Е.[1,2,3,11,12,13,14,21,22,23,24,25] Я хочу написать предикат, который найдет самый длинный непрерывный подсписок элементов списка, то ...
Сегрегирующие списки в Прологе
Мне очень трудно понять, как заставить мой код показывать мои отдельные списки, состоящие из четных и нечетных чисел. Я даже не уверен, чего не хватает моему пониманию. Я новичок в этом языке, очевидно, и должен использовать его в школе. Мой ...
Prolog Operator =: =
В Прологе есть несколько специальных операторов, одним из которых является «есть», однако недавно я натолкнулся на операторы =: =, и я понятия не имею, как это работает. Может ли кто-нибудь объяснить, что делает оператор, а также где я могу ...
Быстрая реализация вербальной арифметики в Прологе
Я уже сделал рабочий обобщенный вербальная арифметика [http://en.wikipedia.org/wiki/Verbal_arithmetic] решатель в Прологе, но это слишком медленно. Чтобы запустить простое выражение S E N D + M O R E = M O N E Y, требуется 8 минут. Может ...
Как умножить все элементы двух списков друг на друга в Прологе
Я думаю, как умножить все элементы двух списков друг на друга. Тогда я хочу поместить все результаты вList3. Например List1 = [1,3,5]. List2 = [2,6,7].List3 должен содержать [1x2, 1x6, 1x7, 3x2, 3x6, 3x7, 5x2, 5x6, 5x7]. В конце List3 = [2, 6, ...
Как удалить четные числа в Списке, используя Пролог
Мне нужно удалить все четные числа в первом списке и сохранить остальные во втором списке. Мой первый нерабочий подход был: remove_even([],[]). remove_even([H1|T1],[H2|T2]):- H1 mod 2 =:= 0, remove_even(T1,_). remove_even([H1|T1],[H2|T2]):- ...
Prolog: заменить элемент в списке по указанному индексу
Я хотел бы иметь предикат Prolog, который может заменить элемент в списке по указанному индексу. Пример % replace(+List,+Index,+Value,-NewList). ?- L=[a,b,c,d], replace(L,1,z,L2). L2 = [a,z,c,d] Я не знаю, как это сделать. Спасибо за вашу ...