Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
40
Task/Spiral-matrix/Maxima/spiral-matrix.maxima
Normal file
40
Task/Spiral-matrix/Maxima/spiral-matrix.maxima
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
spiral(n) := block([a, i, j, k, p, di, dj, vi, vj, imin, imax, jmin, jmax],
|
||||
a: zeromatrix(n, n),
|
||||
vi: [1, 0, -1, 0],
|
||||
vj: [0, 1, 0, -1],
|
||||
imin: 0,
|
||||
imax: n,
|
||||
jmin: 1,
|
||||
jmax: n + 1,
|
||||
p: 1,
|
||||
di: vi[p],
|
||||
dj: vj[p],
|
||||
i: 1,
|
||||
j: 1,
|
||||
for k from 1 thru n*n do (
|
||||
a[j, i]: k,
|
||||
i: i + di,
|
||||
j: j + dj,
|
||||
if i < imin or i > imax or j < jmin or j > jmax then (
|
||||
i: i - di,
|
||||
j: j - dj,
|
||||
p: mod(p, 4) + 1,
|
||||
di: vi[p],
|
||||
dj: vj[p],
|
||||
i: i + di,
|
||||
j: j + dj,
|
||||
if p = 1 then imax: imax - 1
|
||||
elseif p = 2 then jmax: jmax - 1
|
||||
elseif p = 3 then imin: imin + 1
|
||||
else jmin: jmin + 1
|
||||
)
|
||||
),
|
||||
a
|
||||
)$
|
||||
|
||||
spiral(5);
|
||||
/* matrix([ 1, 2, 3, 4, 5],
|
||||
[16, 17, 18, 19, 6],
|
||||
[15, 24, 25, 20, 7],
|
||||
[14, 23, 22, 21, 8],
|
||||
[13, 12, 11, 10, 9]) */
|
||||
Loading…
Add table
Add a link
Reference in a new issue