首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GMP上限函数

GMP上限函数
EN

Stack Overflow用户
提问于 2012-05-10 05:43:53
回答 2查看 1.1K关注 0票数 2

我想用GMP求一个非常大的数的平方根的上限。在C语言中,ceil(sqrt(n))

整数的GMP平方根会截断结果,因此10的平方根将报告为3。浮点平方根的工作方式与预期一样,但我需要取下一个最大的整数。mpf_get_d向零四舍五入,但在其他情况下我想要的就是它。怎样才能得到大数的平方根的上限?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-10 05:49:40

不使用mpf_ceil()有什么特别的原因吗?听起来像是mots的逻辑步骤,除非我遗漏了什么。

编辑:重读你的问题后,有没有理由将数字视为浮点数上的整数?

票数 1
EN

Stack Overflow用户

发布于 2012-05-10 05:49:33

这里有一个快速和肮脏的技巧:

代码语言:javascript
复制
ceil( sqrt(n) ) = trunc_sqrt(n - 1) + 1

其中trunc_sqrt(n)是您当前正在使用的GMP的整数平方根函数。

这应该适用于所有整数n > 0

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10524526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档