# Untitled

a guest
Aug 31st, 2021
36
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. eq(X,X).
2. ne(X,X):-!,fail.
3. ne(X,_).
4. ex(_,[]).
5. ex(X,[X|_]):-!,false.
6. ex(X,[_|L]):-ex(X,L).
7. in(X,[X|L],L).
8. in(X,[Y|L],[Y|M]):-in(X,L,M).
9. match([],[]).
10. match([X|L],Q):-in(X,Q,M),match(L,M).
11. suguru([
12. [V1_1,V1_2,V1_3,V1_4,V1_5],
13. [V2_1,V2_2,V2_3,V2_4,V2_5],
14. [V3_1,V3_2,V3_3,V3_4,V3_5],
15. [V4_1,V4_2,V4_3,V4_4,V4_5],
16. [V5_1,V5_2,V5_3,V5_4,V5_5]]) :-
17.     eq(V1_1, 1),
18.     eq(V1_4, 5),
19.     eq(V3_1, 1),
20.     eq(V3_3, 2),
21.     eq(V3_5, 4),
22.     eq(V5_2, 3),
23.     match([V5_5], [1]),
24.     match([V1_2,V1_3,V2_1], [2,3,4]),
25.     match([V1_5,V2_5,V4_5], [1,2,3]),
26.     match([V4_4,V5_1,V5_3,V5_4], [1,2,4,5]),
27.     match([V2_2,V2_3,V3_2,V4_1], [2,3,4,5]),
28.     match([V2_4,V3_4,V4_2,V4_3], [1,3,4,5]),
29.     ne(V1_1,V2_2),
30.     ne(V1_2,V2_2),
31.     ne(V1_2,V2_3),
32.     ne(V1_3,V1_4),
33.     ne(V1_3,V2_2),
34.     ne(V1_3,V2_3),
35.     ne(V1_3,V2_4),
36.     ne(V2_1,V2_2),
37.     ne(V2_1,V3_2),
38.     ne(V1_4,V2_3),
39.     ne(V1_4,V2_4),
40.     ne(V1_5,V2_4),
41.     ne(V2_5,V3_4),
42.     ne(V3_5,V4_4),
43.     ne(V4_5,V5_4),
44.     ne(V4_5,V5_5),
45.     ne(V4_4,V4_5),
46.     ne(V4_4,V5_5),
47.     ne(V5_4,V5_5),
48.     ne(V2_2,V3_3),
49.     ne(V2_3,V2_4),
50.     ne(V2_3,V3_3),
51.     ne(V2_3,V3_4),
52.     ne(V3_1,V4_2),
53.     ne(V3_2,V3_3),
54.     ne(V3_2,V4_2),
55.     ne(V3_2,V4_3),
56.     ne(V4_1,V4_2),
57.     ne(V4_1,V5_2),
58.     ne(V2_4,V2_5),
59.     ne(V2_4,V3_5),
60.     ne(V3_3,V4_4),
61.     ne(V3_4,V3_5),
62.     ne(V3_4,V4_4),
63.     ne(V3_4,V4_5),
64.     ne(V4_2,V5_2),
65.     ne(V4_2,V5_3),
66.     ne(V4_3,V4_4),
67.     ne(V4_3,V5_2),
68.     ne(V4_3,V5_3),
69.     ne(V4_3,V5_4),
70.     true.
71. describe:-write('solving...\n'),
72.     write('+---+---+---+---+---+\n'),
73.     write('| 1         | 5     |\n'),
74.     write('+   +---+---+---+   +\n'),
75.     write('|   |       |   |   |\n'),
76.     write('+---+   +---+   +   +\n'),
77.     write('| 1     | 2     | 4 |\n'),
78.     write('+   +---+   +---+   +\n'),
79.     write('|   |       |   |   |\n'),
80.     write('+---+---+---+   +---+\n'),
81.     write('|     3         |   |\n'),
82.     write('+---+---+---+---+---+\n'),
83.     true.
84. w([]).
85. w([X|L]):-write(X),write('\n'),w(L).
86. r:-reconsult(suguru).
87. h:-halt.
88. x:-describe,time(suguru(L)),w(L).
89.
RAW Paste Data