如何实现浮点数立方根?
给一个浮点数num, 如何求其立方根ans?首先 0 < |ans| < num,对于浮点数区间的海量数据,若采用加法枚举判断,那绝对把CPU能累死。计算精度越高,时间复杂度越高。
上述方法,只是简单的加法性线性探测。
如果采用对数级别线程探测,就可以短时间求出结果。
二分查找法
(0,num) 区间数,顺序递增,刚好符合二分法条件。
public static double cubeRoot(double num) {double left = 0;double right = num;if (num < 0) {left = num;right = 0;} double mid = (left + right) / 2;double ans = mid* mid *mid;while (Math.abs(num - (ans)) > 1e-5) {mid = (left + right) / 2;ans = mid * mid * mid;if (ans - num > 1e-5) {right = mid;} else if (num - ans > 1e-5){left = mid;}}return mid;}
注意:判断浮点是否相等,不能通过 == 运算符,每个浮点数的精度不一致,只要a - b 结果在给定的精度区间内即可。
如何实现浮点数立方根?相关推荐
- 题目:任意给定一个浮点数,计算这个浮点数的立方根。(基于二分法和牛顿迭代法)(基于Java实现)
题目:任意给定一个浮点数,计算这个浮点数的立方根.(基于二分法和牛顿迭代法)(基于Java实现) 首先,来分析一下这道题,其实在leetcode上做了求解根号3的题之后,对于这种求解立方根的题,基本上 ...
- 开方计算与浮点数的问题
最近一直纠结于一个点,在于二分法中的延申题,就是给出一个列表和一个数X,要我们在其中找出两个数a,b使a**n+b**n=X的数学问题,为了方便描述,以下中n取3. 其实很简单,首先我们要建立一个升序 ...
- python立方根求解_python – 如何获得立方根的整数?
我正在创建一个问题,需要我找到某些数字的立方根,其中一些有整数根,但其中很多都没有. 我有像125这样的数字,应该返回5的立方根,但Python返回4.99999 例: >>> 12 ...
- 求解立方根JAVA实现
package ut.org.demo.controller; public class HJ107求解立方根 { /** * 计算一个浮点数的立方根,不使用库函数. * 保留一位小数. * * 数据 ...
- 如何使用 Python编程来识别整数、浮点数、分数和复数
让我们开始用 Python 探索数学与科学的世界.本章将从一些简单的问题开始,这样你就可以逐渐了解如何使用 Python.首先是基础的数学运算,随后编写简单的程序来操作和理解数字. 1 基本数学运算 ...
- chatgpt赋能python:Python中的立方根-一种快速简便的计算方法
Python中的立方根 - 一种快速简便的计算方法 Python是一门流行的开源编程语言,它被广泛应用于各种应用领域,包括科学计算和数据分析.在数学计算中,Python可以用于计算各种函数,包括立方根 ...
- mysql数学函数立方根,PostgreSQL 基本数据类型及常用SQL 函数操作
数据类型 名字 别名 描述 bigint int8 有符号的8字节整数 bigserial serial8 自动增长的8字节整数 bit [ (n) ] 定长位串 bit varying [ (n) ...
- 华为机试题107-求解立方根
描述 计算一个浮点数的立方根,不使用库函数. 保留一位小数. 数据范围:∣val∣≤20 输入描述: 待求解参数,为double类型(一个实数) 输出描述: 输出参数的立方根.保留一位小数. 示例1 ...
- 【学习笔记】使用魔数快速求立方根
[学习笔记]使用魔数快速求立方根 简介 介绍使用魔数0x2a517d47快速求立方根 x 3 {\sqrt[3]{x}} 3x 的C语言实现和公式的推导. 代码 float MagicCubeRoo ...
最新文章
- linux SMbus错误
- SAP系统的配置传输
- SAP Spartacus checkout 流程使用 url 粘贴直接跳转到 delivery mode不能打开页面的原因
- 使用poi导出大量数据到excel遇到的问题
- opencv有基于c语言的教程吗_VS2019配置opencv详细图文教程和测试代码的实现
- ios超级签名_ios超级签名多少钱?决定超级签名价格的因素有哪些
- RequireJS进阶(一)
- C# image转byte[] byte[]转image
- 校园网接无线路由器多账号登录
- 获得当天的 零点 和 当天的最后 一秒的时刻
- 【感恩节的小礼物】yagmail给家人朋友来一份含有温情的关心和推送吧~Python3自动发送暖心内容邮件。
- linux 系统中/etc/fstab 文件各字段功能,Linux系统 /etc/fstab各个字段含义解释
- Ubuntu下安装anydesk、realVNC实现远程
- (MySQL)Incorrect string value: '\xF0\x9F\x98\x82\xF0\x9F...' for column 'readerName' at row 1
- 前端开发应收藏的各大网站
- 数据分析 - 关于彩票中奖结果的数据分析猜想(一)
- 经典游戏----飞机大战
- 危化园区信息化管理平台(附方案+源码)
- 股市做短线操作技巧 股市做短线操作技巧
- php数据映射到echarts中国地图