c – 重复排列:避免溢出

c – 重复排列:避免溢出,第1张

概述背景: 鉴于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: 我怎样才能“优雅地”计算烫发,以尽可能避免整数溢出,并确保当我 @H_419_0@背景:

鉴于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 – 重复排列:避免溢出所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/langs/1241671.html

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

发表评论

登录后才能评论

评论列表(0条)

保存