Zig-zag matrix: Difference between revisions

Content added Content deleted
(Realize in miniZinc)
(→‎{{header|MiniZinc}}: Improve output layout)
Line 3,403: Line 3,403:
constraint forall(n in {2*g+1 | g in 1..(Size-1) div 2})(zigzag[n,1]=zigzag[n-1,1]+1 /\ forall(g in 2..n)(zigzag[n-g+1,g]=zigzag[n-g+2,g-1]+1));
constraint forall(n in {2*g+1 | g in 1..(Size-1) div 2})(zigzag[n,1]=zigzag[n-1,1]+1 /\ forall(g in 2..n)(zigzag[n-g+1,g]=zigzag[n-g+2,g-1]+1));
constraint forall(n in {2*g+((Size) mod 2) | g in 1..(Size-1) div 2})(zigzag[Size,n]=zigzag[Size,n-1]+1 /\ forall(g in 1..Size-n)(zigzag[Size-g,n+g]=zigzag[Size-g+1,n+g-1]+1));
constraint forall(n in {2*g+((Size) mod 2) | g in 1..(Size-1) div 2})(zigzag[Size,n]=zigzag[Size,n-1]+1 /\ forall(g in 1..Size-n)(zigzag[Size-g,n+g]=zigzag[Size-g+1,n+g-1]+1));
output [show(zigzag[n,1..])++"\n" | n in 1..Size];
output [show2d(zigzag)];
</lang>
</lang>
{out}
{out}
<pre>
<pre>
minizinc -DSize=5 zigzag.mzn
minizinc -DSize=5 zigzag.mzn
[1, 2, 6, 7, 15]
[| 1, 2, 6, 7, 15 |
[3, 5, 8, 14, 16]
3, 5, 8, 14, 16 |
[4, 9, 13, 17, 22]
4, 9, 13, 17, 22 |
[10, 12, 18, 21, 23]
10, 12, 18, 21, 23 |
[11, 19, 20, 24, 25]
11, 19, 20, 24, 25 |]
----------
----------


minizinc -DSize=6 zigzag.mzn
minizinc -DSize=6 zigzag.mzn
[1, 2, 6, 7, 15, 16]
[| 1, 2, 6, 7, 15, 16 |
[3, 5, 8, 14, 17, 26]
3, 5, 8, 14, 17, 26 |
[4, 9, 13, 18, 25, 27]
4, 9, 13, 18, 25, 27 |
[10, 12, 19, 24, 28, 33]
10, 12, 19, 24, 28, 33 |
[11, 20, 23, 29, 32, 34]
11, 20, 23, 29, 32, 34 |
[21, 22, 30, 31, 35, 36]
21, 22, 30, 31, 35, 36 |]
----------
----------
</pre>
</pre>

=={{header|Modula-3}}==
=={{header|Modula-3}}==
<lang modula3>MODULE ZigZag EXPORTS Main;
<lang modula3>MODULE ZigZag EXPORTS Main;