<<组合数学`;unrankpartition[n_Integer,k_Integer]:=块[{ove,res,qq,zz,mem},ove=PartitionsP[n]-k;res={};当[n-Tr[res]>0时,qq=0;zz=0;而[(mem=NumberOfPartitions[n-Tr[res],qq+1])<=ove,zz=mem;qq++];附加到[res,qq+1];ove=ove-zz];资源]/;k<=分区P[n]&&k>0;unrankpartition[n_Integer,All]:=块[{k=1,z},While[(z=Tr[PartitionsP[范围@k]])<n,k++];unrankpartition[k,PartitionsP[k]+n-z]];par2int[par_?PartitionQ]:=块[{t3,t4,t5},t3=差异[Prepend[Reverse[par],0]];第4节=反向@地图[#-1&,1+t3,1];t5=扁平[表[Mod[k,2]+0*范围[t4[k]],{k,长度[t4]}];FromDigits[t5,2];b=表格[par2int@unrankpartition[n,全部],{n,138}]
|