%I #21 Feb 23 2022 11:19:02
%S 1,3,7,17,39,91,209,487,1135,2663,6259,14769,34917,82763,196489,
%T 467325,1112941,2654015,6335751,15140525,36212889,86685101,207653983,
%U 497772203,1193946381,2865399103,6880328883,16528823695,39725234877,95514665625
%N Number of n-step three-sided prudent self-avoiding walks ending on the bottom side of their box.
%H Alois P. Heinz, <a href="/A191825/b191825.txt">Table of n, a(n) for n = 0..100</a>
%H Mireille Bousquet-Mélou, <a href="https://dmtcs.episciences.org/3627">Families of prudent self-avoiding walks</a>, DMTCS proc. AJ, 2008, 167-180.
%H Mireille Bousquet-Mélou, <a href="https://arxiv.org/abs/0804.4843">Families of prudent self-avoiding walks</a>, arXiv:0804.4843 [math.CO], 2008-2009.
%H Enrica Duchi, <a href="https://hal.archives-ouvertes.fr/hal-00159320">On some classes of prudent walks</a>, in: FPSAC'05, Taormina, Italy, 2005.
%e a(3) = 17: EEE, EES, ESE, ESS, NES, NWS, WWW, WWS, WSW, WSS, SEE, SES, SWW, SWS, SSE, SSW, SSS.
%p b:= proc(d, i, n, x, y, w, s)
%p if w>x then b([3,2,1,4][d], i, n, w, y, x, s)
%p else b(d, i, n, x, y, w, s):=
%p `if`(s>n, 0, `if`(n=0, `if`(s=0, 1, 0),
%p `if`(d in [0, 1] or d<>3 and x=0 or d=2 and i,
%p b(1, evalb(x=0), n-1, max(x-1, 0), y, w+1, s), 0) +
%p `if`(d in [0, 2] or d<>4 and (y=0 or i),
%p b(2, evalb(y=0), n-1, x, max(y-1, 0), w, s+1), 0) +
%p `if`(d in [0, 3] or d<>1 and w=0 or d=2 and i,
%p b(3, evalb(w=0), n-1, x+1, y, max(w-1, 0), s), 0) +
%p `if`(d in [0, 4] or d<>2 and (s=0 or i),
%p b(4, evalb(s=0), n-1, x, y+1, w, max(s-1, 0)), 0)))
%p fi
%p end:
%p a:= n-> b(0, true, n, 0, 0, 0, 0):
%p seq(a(n), n=0..30);
%t b[d_, i_, n_, x_, y_, w_, s_] := b[d, i, n, x, y, w, s] = If[w>x, b[{3, 2, 1, 4}[[d]], i, n, w, y, x, s], If[s>n, 0, If[n == 0, If[s == 0, 1, 0], If[MatchQ[d, 0|1] || d != 3 && x == 0 || d == 2 && i, b[1, x == 0, n-1, Max[x-1, 0], y, w+1, s], 0]+If[MatchQ[d, 0|2] || d != 4 && (y == 0 || i), b[2, y == 0, n-1, x, Max[y-1, 0], w, s+1], 0]+ If[MatchQ[d, 0|3] || d != 1 && w == 0 || d == 2 && i, b[3, w == 0, n-1, x+1, y, Max[w-1, 0], s], 0]+If[MatchQ[d, 0|4] || d != 2 && (s == 0 || i), b[4, s == 0, n-1, x, y+1, w, Max[s-1, 0]], 0]]]]; a[n_] := b[0, True, n, 0, 0, 0, 0]; Table[a[n], {n, 0, 30}] (* _Jean-François Alcover_, Dec 22 2014, after _Alois P. Heinz_ *)
%Y Cf. A191823, A191824, A191826, A191827, A191828.
%K nonn,walk
%O 0,2
%A _Alois P. Heinz_, Jun 17 2011