Для квадратной матрицы определить, содержит ли она два разных столбца, с одинаковой суммой элементов - Prolog

Узнай цену своей работы

Формулировка задачи:

Для квадратной матрицы определить, содержит ли она два разных столбца, с одинаковой суммой элементов

Решение задачи: «Для квадратной матрицы определить, содержит ли она два разных столбца, с одинаковой суммой элементов»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4. intll=intl*
  5.  
  6. predicates
  7. nth(int,intl,int)
  8. getcol(intll,int,intl)
  9. sumcol(intll,int,intl)
  10. suml(intl,int)
  11. memb(int,intl)
  12. haseq(intl)
  13. lenl(intll,int)
  14. task(intll)
  15.  
  16.  
  17. clauses
  18.  
  19. lenl([],0).
  20. lenl([_|T],N) :- lenl(T,N1), N=N1+1.
  21.  
  22. haseq([]):- fail.
  23. haseq([H|T]) :- memb(H,T), !.
  24. haseq([_|T]) :- haseq(T).
  25.  
  26. memb(_,[]) :- fail.
  27. memb(H,[H|_]) :- !.
  28. memb(H,[X|T]) :- H<>X, memb(H,T).
  29.  
  30. suml([],0).
  31. suml([H|T],S) :- suml(T,S1), S=S1+H.
  32.  
  33. nth(1,[H|_],H).
  34. nth(N,[_|T],R) :- N1=N-1, nth(N1,T,R).
  35.  
  36. getcol([],_,[]).
  37. getcol([H|T],N,[A|R]):- nth(N,H,A), getcol(T,N,R).
  38.  
  39. sumcol(_,0,[]).
  40. sumcol(X,N,[S|T]) :- getcol(X,N,R), suml(R,S), N1=N-1, sumcol(X,N1,T).
  41.  
  42. task(X) :- lenl(X,N), sumcol(X,N,SX), haseq(SX).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы