b: =proc(n,w,l)选项记住;局部k,t;
如果max(l[])>n,则0 elif n=0,则1
elif-min(l[])>0,则t:=min(l[]);b(n-t,w,映射(h->h-t,l))
else表示k,而l[k]>0表示od;
`如果`(w,b(n,false,s(k=1,l)),0)+
`如果`(k>1且l[k-1]=1,b(n,w,s(k=2,k-1=2,l)),0)+
`如果`(k<nops(l)and l[k+1]=1,b(n,w,s(k=2,k+1=2,l)),0)+
`如果`(k<nops(l)和l[k+1]=0,b(n,w,s(k=1,k+1=2,l))+
b(n,w,s(k=2,k+1=1,l))+
`如果`(w,b(n,false,s(k=2,k+1=2,l)),0),0+
`如果`(k+1<nops(l)并且l[k+1]=0并且l[k+2]=0,
b(n,w,s(k=2,k+1=2,k+2=2,l)),0)
fi(菲涅耳)
结束时间:
a: =n->b(n,evalb(irem(n,3)>0),[0$n]):s:=底土:
seq(a(n),n=0..10);
|