c – 重复排列:避免溢出

发布时间:2019-10-05 发布网站:大佬教程
大佬教程收集整理的这篇文章主要介绍了c – 重复排列:避免溢出大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
背景:

鉴于n球,使得:

'a' balls are of colour GREEN
'b' balls are of colour BLUE
'c' balls are of colour RED
...

(当然是b c … = n)

可以安排这些球的排列数量由下式给出:

perm = n! / (a! b! c! ..)

问题1:
我怎样才能“优雅地”计算烫发,以尽可能避免整数溢出,并确保当我完成计算时,我要么具有正确的烫发值,要么我知道最终结果会溢出?

基本上,我想避免使用像GNU GMP这样的东西.

可选的,问题2:
这是一个非常糟糕的主意,我应该继续使用GMP吗?

解决方法

如果你有cpu时间的全局,你可以从所有阶乘中列出列表,然后找到列表中所有数字的素数因子化,然后取消顶部的所有数字与底部的数字,直到数字完全降低.

大佬总结

以上是大佬教程为你收集整理的c – 重复排列:避免溢出全部内容,希望文章能够帮你解决c – 重复排列:避免溢出所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ群:277859234,请注明来意。