P[n_Integer]:=P[n]=P[n,n];P[n_Integer,_]:={}/;(n<0);(*分区*)
P[0,_]:={{}};P[n_Integer,1]:={表[1,{n}]};P[_,0]:={};(*S.S.Skiena*)
P[n_Integer,m_Integer]:=连接[Map[(前缀[#,m])&,P[n-m,m]],P[n,m-1]];
AC[d_Integer]:=模块[{C,M,p},(*来自W.Y.C.Chen算法*)
M[p_List]:=加上@@p/(倍@@p倍@@(长度/@分割[p]!));
C[p_List,q_List]:=模块[{r,m,k,x},r=如果[0==长度[q],1,2 2^
整数指数[LCM@@q,2];m=LCM@@Join[p/GCD[r,p],q/GCD[r,q]];
系数列表[展开[乘积[(1+x^(kr))^((Plus@@Map[MoebiusMu[k/#]
2^加号@@GCD[#r,连接[p,q]]&,除数[k]])/(kr)),{k,1,m}]],x]];
求和[二项式[d,p]加@@Plus@@Outer[M[#1]M[#2]C[#1,#2]2^(d-Length[#1]-Length[#2])&,p[p],p[d-p],1],{p,0,d}]/(d!2^d)];交流[5]
(*结束*)