# Alex Gentul Homework 15 OK to share info1:=proc() print(`An(integer n); MaxDev(real number a,positive integer <=2 d,list w,positive integer N)`); end: info1(); # (1) # # An(integer n) computes the number of up down permutations of {1...n} An:=proc(n) option remember; local i,a; if n=0 or n=1 or n=2 then return 1; else a:=0; for i from 1 to n/2 do a:=a+binomial(n-1,2*i-1)*An(2*i-1)*An(n-2*i); end; end; a; end: # (An(200)/200!)/(An(199)/199!) gets pretty close to 2/pi # (2) # # MaxDev(real number a,positive integer <=2 d,list w,positive integer N) MaxDev:=proc(a,d,w,N) local P,b,i,j,w1; Digits:=50*N*d^(nops(w)); P:=RtoS(evalf(a),d,N*d^(nops(w))); b:=0; for i from 1 to nops(P)-nops(w)+1 do w1:=[seq(P[i+j],j=0..nops(w)-1)]; if w1=w then b:=b+1; end; end; b; end: # (3) # # J(n) J:=proc(n)