Мне нужно сделать программу, которая вычисляет магическую матрицу, я сделал свой код, и он работает, но моя перестановка очень медленная. мне нужен тот, который быстрее кто-то может помочь мне, пожалуйстаПролог Я должен сделать программу, которая вычисляет перестановку магической матрицы
Это код:
diabolico([A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]) :-
permutar([1,14,3,16,5,12,13,15,9,10,11,6,7,2,8,4],[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]),
A+B+C+D=:=34, E+F+G+H=:=34, I+J+K+L=:=34, M+N+O+P=:=34,
A+E+I+M=:=34, B+F+J+N=:=34, C+G+K+O=:=34, D+H+L+P=:=34,
M+B+G+L=:=34, I+N+C+H=:=34, E+J+O+D=:=34, A+F+K+P=:=34,
P+C+F+I=:=34, L+O+B+E=:=34, H+K+N+A=:=34, D+G+J+M=:=34.
permutar([],[]).
permutar([X|Y], Z):-
permutar(Y,L),
insertar(X,L,Z).
insertar(E,L,[E|L]).
insertar(E, [X|Y], [X|Z]):-
insertar(E, Y, Z).
факт (16, 20922789888000). – CapelliC
Я знаю, что тебе 16! возможности, но я хочу знать, есть ли способ сделать перестановку быстрее – D4IVT3