Getting count of permutations in a faster way(以更快的方式获得排列计数)
问题描述
使用此代码来获得排列的计数在大数上很慢,因为分区部分需要很长时间来计算像100这样的数字的所有分区,并且由于RAM中的所有分区,这是非常消耗RAM的。有什么解决方案可以更快地计算排列的数量吗?谢谢。如果有get_permutations_count(10,10)
表示使用10个不同符号的长度为10的所有排列,如果有get_permutations_count(10,1)
表示使用一个不同符号的长度为10的所有排列,则这些排列将是0000000000
1111111111
2222222222
333333333
...9999999999
。
推荐答案
按照this答案,您可以找到计算此类排列数量的高效算法的派生。
它是通过使用问题的一般化来计算长度不一定等于字母表大小的序列来实现的。
然后
运行约0.5秒即可得到答案
这篇关于以更快的方式获得排列计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!