如何生成一个多集的所有排列?

如何生成一个多集的所有排列?,第1张

如何生成一个多集的所有排列

生成所有可能的排列,然后丢弃重复的排列,效率极低。存在各种算法以按字典顺序或其他类型的顺序直接生成多集的排列。Takaoka的算法是一个很好的例子,但也许Aaron
Williams的算法更好

http://webhome.csc.uvic.ca/~haron/CoolMulti.pdf

此外,它已在R包“ multicool”中实现。

顺便说一句,如果您只想要不同排列的总数,答案就是多项式系数:例如,如果您有n_a个元素“ a”,n_b个元素“ b”,n_c个元素“
c”,那么不同的排列是(n_a + n_b + n_c)!/(n_a!n_b!n_c!)



欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5175463.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-18
下一篇2022-11-18

发表评论

登录后才能评论

评论列表(0条)

    保存