前端之家收集整理的这篇文章主要介绍了
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时间的全局,你可以从所有阶乘中列出列表,然后找到列表中所有数字的素数因子化,然后取消顶部的所有数字与
底部的数字,直到数字完全降低.
原文链接:https://www.f2er.com/c/119397.html