Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,8 @@
|
|||
table (+,+,+,max)
|
||||
pp(Row,_Column,Tri,Sum),Row>Tri.length => Sum=0.
|
||||
pp(Row,Column,Tri,Sum) ?=>
|
||||
pp(Row+1,Column,Tri,Sum1),
|
||||
Sum = Sum1+Tri[Row,Column].
|
||||
pp(Row,Column,Tri,Sum) =>
|
||||
pp(Row+1,Column+1,Tri,Sum1),
|
||||
Sum = Sum1+Tri[Row,Column].
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
pp2(Row, Column, Sum, Tri, M) =>
|
||||
if Sum > M.get(max_val,0) then
|
||||
M.put(max_val,Sum)
|
||||
end,
|
||||
Row := Row + 1,
|
||||
if Row <= Tri.length then
|
||||
foreach(I in 0..1)
|
||||
pp2(Row,Column+I, Sum+Tri[Row,Column+I], Tri, M)
|
||||
end
|
||||
end.
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
max_path(N, V) :-
|
||||
data(N, T),
|
||||
path(1, T, V).
|
||||
|
||||
path(_N, [], 0) .
|
||||
path(N, [H | T], V) :-
|
||||
nth(N, H, V0),
|
||||
N1 is N+1,
|
||||
path(N, T, V1),
|
||||
path(N1, T, V2),
|
||||
V = V0 + max(V1, V2).
|
||||
|
||||
data(2, P) :-
|
||||
P =
|
||||
[ [55],
|
||||
[94, 48],
|
||||
[95, 30, 96],
|
||||
[77, 71, 26, 67],
|
||||
[97, 13, 76, 38, 45],
|
||||
[7, 36, 79, 16, 37, 68],
|
||||
[48, 7, 9, 18, 70, 26, 6],
|
||||
[18, 72, 79, 46, 59, 79, 29, 90],
|
||||
[20, 76, 87, 11, 32, 7, 7, 49, 18],
|
||||
[27, 83, 58, 35, 71, 11, 25, 57, 29, 85],
|
||||
[14, 64, 36, 96, 27, 11, 58, 56, 92, 18, 55],
|
||||
[2, 90, 3, 60, 48, 49, 41, 46, 33, 36, 47, 23],
|
||||
[92, 50, 48, 2, 36, 59, 42, 79, 72, 20, 82, 77, 42],
|
||||
[56, 78, 38, 80, 39, 75, 2, 71, 66, 66, 1, 3, 55, 72],
|
||||
[44, 25, 67, 84, 71, 67, 11, 61, 40, 57, 58, 89, 40, 56, 36],
|
||||
[85, 32, 25, 85, 57, 48, 84, 35, 47, 62, 17, 1, 1, 99, 89, 52],
|
||||
[6, 71, 28, 75, 94, 48, 37, 10, 23, 51, 6, 48, 53, 18, 74, 98, 15],
|
||||
[27, 2, 92, 23, 8, 71, 76, 84, 15, 52, 92, 63, 81, 10, 44, 10, 69, 93]].
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
import util.
|
||||
|
||||
go =>
|
||||
tri(Tri),
|
||||
|
||||
println("Mode directed tabling:"),
|
||||
pp(1,1,Tri,Sum),
|
||||
writeln(max_val=Sum),
|
||||
nl,
|
||||
|
||||
println("Loop based:"),
|
||||
M = new_map([max_val=0]),
|
||||
pp2(1,1, Tri[1,1], Tri, M),
|
||||
writeln(max_val=M.get(max_val)),
|
||||
nl,
|
||||
|
||||
println("Adapted the Prolog solution:"),
|
||||
max_path(2, V2),
|
||||
println(max_val=V2),
|
||||
nl.
|
||||
|
||||
tri(Tri) =>
|
||||
Tri =
|
||||
{
|
||||
{55},
|
||||
{94,48},
|
||||
{95,30,96},
|
||||
{77,71,26,67},
|
||||
{97,13,76,38,45},
|
||||
{07,36,79,16,37,68},
|
||||
{48,07,09,18,70,26,06},
|
||||
{18,72,79,46,59,79,29,90},
|
||||
{20,76,87,11,32,07,07,49,18},
|
||||
{27,83,58,35,71,11,25,57,29,85},
|
||||
{14,64,36,96,27,11,58,56,92,18,55},
|
||||
{02,90,03,60,48,49,41,46,33,36,47,23},
|
||||
{92,50,48,02,36,59,42,79,72,20,82,77,42},
|
||||
{56,78,38,80,39,75,02,71,66,66,01,03,55,72},
|
||||
{44,25,67,84,71,67,11,61,40,57,58,89,40,56,36},
|
||||
{85,32,25,85,57,48,84,35,47,62,17,01,01,99,89,52},
|
||||
{06,71,28,75,94,48,37,10,23,51,06,48,53,18,74,98,15},
|
||||
{27,02,92,23,08,71,76,84,15,52,92,63,81,10,44,10,69,93}
|
||||
}.
|
||||
Loading…
Add table
Add a link
Reference in a new issue