h: =proc(l,f)选项记忆;局部k;如果min(l[])>0,则
`如果`(nops(f)=0,1,h(map(u->u-1,l[1..f[1]]),subsop(1=[][],f))
nops(l)中的k为else,而l[k]>0由-1做od;展开(
`如果`(nops(f)>0且f[1]>=k,x*h(底土(k=2,l),f),0)+
`如果`(k>1且l[k-1]=0,h(底土(k=1,k-1=1,l),f),0)
fi(菲涅耳)
结束时间:
g: =l->`if`(add(`if'(l[i]::奇数,(-1)^i,0),i=1..nops(l))=0,
`如果`(l=[],1,h([0$l[1],底土(1=[][],l)),0):
b: =(n,i,l)->`如果'(n=0或i=1,g([l[],1$n]),b(n,i-1,l)
+b(n-i,最小值(n-i、i),[l[]、i]):
a: =n->系数(b(2*n$2,[]),x,iquo(n,2)):
seq(a(n),n=0..14);
|