submultisetQ[M_,N_]:=或[Length[M]==0,匹配Q[{Sort[List@@M],Sort[List@@N]},{{x_,Z___},}___,x_,W___}}/;子多重集Q[{Z},{W}]];
stableQ[u_]:=应用[And,Outer[#1==#2||!submultisetQ[#1,#2]&&!子多重集Q[#2,#1]&,u,u,1],{0,1}];
sps[{}]:={{}};sps[set:{i_,___}]:=联接@@函数[s,前缀[#,s]和/@sps[Complement[set,s]]/@Cases[子集[set],{i,___}];
mps[set_]:=联合[Sort[Sort/@(#/.x_Integer:>set[[x]])]&/@sps[Range[Length[set]]];
gro[m_]:=gro[m]=如果[Length[m]==1,{m},选择[Union[Sort/@Join@@(Tuples[gro/@#]&/@Select[mps[m],Length[#]>1&])],stableQ]];
表[Sum[Length[gro[m]],{m,Flatten[MapIndexed[Table[#2,{#1}]&,#]]&/@Integer Partitions[n]}],{n,5}]