Написать предикат, который формирует список из наиболее часто встречающихся элементов списка - Prolog
Формулировка задачи:
необходимо реализовать данную задачу, вот как бы нашлось такое :
тут мы изначально забиваем необходимую частоту встречаемости, а вот как сделать так чтобы эта частота встречаемости считалась и просто выбирались частые символы.
Например: [0,3,5,7,1,5,3,0,3,3,5,7,0,5,0]–>[0,3,5]
Заранее спасибо
Решение задачи: «Написать предикат, который формирует список из наиболее часто встречающихся элементов списка»
textual
Листинг программы
seq_qty(S, SQ2) :- seq_qty(S, [], SQ), sort(SQ, SQ1), reverse(SQ1, SQ2). seq_qty([], SQ, SQ). seq_qty([H | T], SQ0, SQ) :- select1([N, H], SQ0, SQ1), N1 is N + 1, !, seq_qty(T, [[N1, H] | SQ1], SQ). seq_qty([H | T], SQ0, SQ) :- seq_qty(T, [[1, H] | SQ0], SQ). select1(X, [X|Tail], Tail). select1(Elem, [Head|Tail], [Head|Rest]) :- select1(Elem, Tail, Rest).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д