It is ok to post! # Name:Treasa Bency Biju Jose # Date: 10-22-2020 # Assignment #14 ------------------------------------------------------------------------------------------------------------- 1. CountRuns := proc(L, k) local i, m, t; t := 0; m := nops(L) - k + 1; for i to m do if L[i] = L[i + k - 1] then t := t + 1; end if; end do; t; end proc; CountRuns([1, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2], 3); 4 ------------------------------------------------------------------------------------------------------------- 2. AvePathRuns := proc(m, n, k, N) local i, t, avg, L, var, j, s; t := 0; L := []; for i to N do t := CountRuns(RPath(m, n), k); L := [op(L), t]; end do; avg := evalf(add(L)/N); s := add(seq((L[i] - avg)^2, i = 1 .. nops(L))); var := evalf(sqrt(s/N)); avg, var; end proc; seq([AvePathRuns(200, 200, 5, 3000)], i = 1 .. 10); [197.4600000, 9.834619125], [197.2693333, 9.902834022], [197.6666667, 9.933422465], [197.4583333, 9.874559685], [197.3006667, 9.977955674], [197.5610000, 9.887884743], [197.3633333, 1[04506419], [197.6166667, 9.886845557], [197.7953333, 9.721185754], [197.6186667, 9.985017516] ------------------------------------------------------------------------------------------------------------- 3. AveGPathRuns := proc(m, n, k, N) local i, t, avg, L, var, j, s; t := 0; L := []; for i to N do t := CountRuns(RGPath(m, n), k); L := [op(L), t]; end do; avg := evalf(add(L)/N); s := add(seq((L[i] - avg)^2, i = 1 .. nops(L))); var := evalf(sqrt(s/N)); avg, var; end proc; seq([AveGPathRuns(200, 200, 5, 3000)], i = 1 .. 10); [197.7820000, 9.870923231], [198.1173333, 9.897418815], [198.3470000, 10.05335360], [198.1630000, 9.902850717], [197.9370000, 9.762464752], [[198.4343333, 9.882223790], [198.2893333, 10.14253140], [197.9983333, 9.937823202], [198.1573333, 9.904641417], [198.0300000, 9.950365153] ------------------------------------------------------------------------------------------------------------- 4. CountMaximalRuns := proc(L, k) local i, m, t; t := 0; m := nops(L) - k + 1; for i to m do if L[i] = L[i + k - 1] and L[i] <> 1 and i + k <= m then if L[i - 1] <> L[i] and L[i + k] <> L[i] then t := t + 1; end if; end if; end do; t; end proc; AvePathMaximalRuns := proc(m, n, k, N) local i, t, avg, L, var, j, s; t := 0; L := []; for i to N do t := CountMaximalRuns(RPath(m, n), k); L := [op(L), t]; end do; avg := evalf(add(L)/N); s := add(seq((L[i] - avg)^2, i = 1 .. nops(L))); var := evalf(sqrt(s/N)); avg, var; end proc; AveGPathMaximalRuns := proc(m, n, k, N) local i, t, avg, L, var, j, s; t := 0; L := []; for i to N do t := CountMaximalRuns(RGPath(m, n), k); L := [op(L), t]; end do; avg := evalf(add(L)/N); s := add(seq((L[i] - avg)^2, i = 1 .. nops(L))); var := evalf(sqrt(s/N)); avg, var; end proc; ------------------------------------------------------------------------------------------------------------- 5. GoodBrother := proc(L) local s, i, p, n, q; p := 0; q := 0; s := add(seq(L[i]), i = 1 .. nops(L)); if type(nops(L), odd) and s = 1 then n := 1/2*nops(L) - 1/2; for i to nops(L) do if L[i] = 1 then p := p + 1; elif L[i] = -1 then q := q + 1; else 0; end if; end do; if 2*n + 1 = p + q then CycShi(L)[nops(L) - 1]; end if; end if; end proc; GoodBrother([1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 1]); [1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1] -------------------------------------------------------------------------------------------------------------