基础算法-浮点二分

简介: 与上一篇整数二分的思路基本相同,但浮点二分通常是函数求根、开方等问题,比较简单。

基本思路

与上一篇整数二分的思路基本相同,但浮点二分通常是函数求根、开方等问题,比较简单。

题目描述

给定一个浮点数 n,求它的三次方根。



输入格式

输入共一行。

第一行,包含第一个浮点数n。

输出格式

共一行,包含一个浮点数,表示问题的解。

注意,结果保留 6 位小数。


数据范围

−10000≤n≤10000


输入样例

1000.00

输出样例

10.000000



实现方法

C++ 实现小数输出的方法

引用头文件 #include<iomanip>,常用cout<<fixed<<setprecision(8)<<(变量名)<<endl;

四舍五入法:

floor() 不大于自变量的最大整数

ceil() 不小于自变量的最大整数

round() 四舍五入到最邻近的整数

1. 方法一(pow函数)

pow(x, y)详解

头文件:math.h/cmath(C++中)。

功能:用于计算x的 y 次幂。

返回值:返回幂指数的结果,即 x 的 y 次幂。若 x 为负数且 y 为 小数,或者 x 为 0 且 y 小于等于 0 ,将出现结果错误。(当 x 为负数要进行特殊处理)

返回类型:double型,当为int,float时会给警告。


实现代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
    double n,res;
    cin>>n;
    if(n>=0)
    {
        res=pow(n,1.0/3);
    }
    else
    {
        res=(-1)*pow((-1)*n,1.0/3);
    }
    cout<<fixed<<setprecision(6)<<res<<endl;
    system("pasue");
    return 0;
}


2. 方法二(STL——cbrt函数)

cbrt(x) 函数详解


  • 头文件:cmath。
  • 功能:用于计算的立方根。
  • 返回值:给定数字 x 的立方根。
  • 返回类型:double型。



实现代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
    double n,res;
    cin>>n;
    res=cbrt(n);
    cout<<fixed<<setprecision(6)<<res<<endl;
    system("pasue");
    return 0;
}


3. 方法三(浮点二分)

实现代码

#include <bits/stdc++.h>
using namespace std;
int main()
{
    double n;
    cin >> n;
    double l=-10000,r=10000;
    while(r-l>1e-8)
    {
        double mid=(l+r)/2.0;
        if (mid*mid*mid>=n)
        {
            r=mid;
        }
        else
        {
            l=mid;
        }
    }
    cout<<fixed<<setprecision(6)<<l<<endl;
    system("pause");
    return 0;
}

相关文章
|
算法 C语言
【有营养的算法笔记】基础算法 —— 整数二分与浮点二分
【有营养的算法笔记】基础算法 —— 整数二分与浮点二分
160 0
【有营养的算法笔记】基础算法 —— 整数二分与浮点二分
|
算法
《算法技术手册》一3.4.3 浮点值的比较
本节书摘来华章计算机《算法技术手册》一书中的第3章 ,第3.4.3节, George T.Heineman Gary Pollice Stanley Selkow 著 杨晨 曹如进 译 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1394 0
|
12天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
18天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
6天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
6天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如&quot;How are you&quot;、&quot;I am fine&quot;、&quot;I love you&quot;等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
14天前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
|
11天前
|
算法
基于WOA鲸鱼优化的购售电收益与风险评估算法matlab仿真
本研究提出了一种基于鲸鱼优化算法(WOA)的购售电收益与风险评估算法。通过将售电公司购售电收益风险计算公式作为WOA的目标函数,经过迭代优化计算出最优购电策略。实验结果表明,在迭代次数超过10次后,风险价值收益优化值达到1715.1万元的最大值。WOA还确定了中长期市场、现货市场及可再生能源等不同市场的最优购电量,验证了算法的有效性。核心程序使用MATLAB2022a实现,通过多次迭代优化,实现了售电公司收益最大化和风险最小化的目标。
|
15天前
|
算法
通过matlab分别对比PSO,反向学习PSO,多策略改进反向学习PSO三种优化算法
本项目使用MATLAB2022A版本,对比分析了PSO、反向学习PSO及多策略改进反向学习PSO三种优化算法的性能,主要通过优化收敛曲线进行直观展示。核心代码实现了标准PSO算法流程,加入反向学习机制及多种改进策略,以提升算法跳出局部最优的能力,增强全局搜索效率。
|
9天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的宝石类型识别算法matlab仿真
本项目利用GoogLeNet深度学习网络进行宝石类型识别,实验包括收集多类宝石图像数据集并按7:1:2比例划分。使用Matlab2022a实现算法,提供含中文注释的完整代码及操作视频。GoogLeNet通过其独特的Inception模块,结合数据增强、学习率调整和正则化等优化手段,有效提升了宝石识别的准确性和效率。