欢迎光临散文网 会员登陆 & 注册

【编程笔记】浮点数二分·数的三次方根

2023-01-08 16:37 作者:夕弦-Yamai_Yuzuru  | 我要投稿

数的三次方根

给定一个浮点数 n,求它的三次方根。结果保留 6 位小数。数的范围在-10000到10000之间。

数的三次方根思路

由于-10000到10000,可以视为升序序列。

那么,当mid=(l+r)/2时,mid^3>=x时,说明mid在左区间[l,mid],反之,在右区间[mid,r]。

由于不是整数二分,而是浮点数二分,无需在移动l,r的时候进行加一减一的操作,l和r变换时直接变成mid即可。

此外,因为要求保留六位小数。

那么,r-l>10^(-8)

如果保留四位小数,那么就是r-l>10^-6,总的来说,就是负的数要比需要保留的小数多2

整理后如下

 

数的三次方根整理的N-s图

注意,在C++中,mid^3中的^代表异或,故用mid*mid*mid代表三次方

整合后如下


数的三次方根整合的N-s图

开心,比较轻松!

夕弦的图片由NovalAI生成。

【编程笔记】浮点数二分·数的三次方根的评论 (共 条)

分享到微博请遵守国家法律