题目选自洛谷P1024

考虑使用二分的方法求解,引出零点存在性定理:若f(a) * f(b) < 0 (a<b),则在(a,b)上 至少存在一个解。

一个定义在实数区间上的二分呼之欲出:如果终点的函数值和某点的正负性相同,那么零点一定在中点的另一侧。

注意:函数的单调性 和 “条件”的单调性无关

所以我们从最左边开始枚举每一个数,把这一个数当做[a,a+1]的一个区间,来进行求解

如果端点是解,那么直接输出即可,

否则 如果满足零点定理,那么就把这个区间再细分求解,

输出L即可。

题目描述

有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根(根的范围在-100至100之间),且根与根之差的绝对值>=1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。

提示:记方程f(x)=0,若存在2个数x1和x2,且x1<x2,f(x1)*f(x2)<0,则在(x1,x2)之间一定有一个根。

输入输出格式

输入格式:

一行,4个实数A,B,C,D。

输出格式:

一行,三个实根,并精确到小数点后2位。

输入输出样例

输入样例 1

1 -5 -4 20

输出样例 1

-2.00 2.00 5.00

解题代码:

#include<stdio.h>
#include<iostream>
using namespace std;
double a,b,c,d;
double f(double x){return (a*x*x*x + b*x*x + c*x +d);
}
int main(){cin>>a>>b>>c>>d;for(int i=-100;i<=100;i++){ //一个点一个点的试,看是否可能存在根,若存在 则细分求解double L = i, R = i + 1,mid;if(fabs(f(L)) < 1e-4)  //左端点是根printf("%.2lf ",L);else if(fabs(f(R)) < 1e-4)  //右端点是根,这里跳过的原因是放置得到重复解continue;else if(f(L) * f(R) < 0){   //有根while(R - L >1e-4){mid = (L + R) / 2;if(f(mid) * f(R) > 0)R = mid;else L = mid;}printf("%.2lf ",L);}}return 0;
}

二分答案——一元三次方程求解(洛谷 P1024)相关推荐

  1. 题目:P1024 [NOIP2001 提高组] 一元三次方程求解

    题目:[NOIP2001 提高组] 一元三次方程求解 - 洛谷 题目大意 给定4个数作为一元三次方程的系数,再用2位小数计算出3个根 数据类型 double 思路 输入进行条件判断 代码 #inclu ...

  2. 一元三次方程求解 -- 二分查找

    [NOIP2001 提高组] 一元三次方 题目描述 思路 code tag:数学,二分查找 题目链接:洛谷P1024: [NOIP2001 提高组] 一元三次方 题目描述 思路 先对三次函数求导得到二 ...

  3. 洛谷 P1024 一元三次方程求解 (暴力 or 二分 or 盛金公式)

    P1024 一元三次方程求解 题意 有形如:ax3+bx2+cx+d=0ax^3+bx^2+cx+d=0ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,da, ...

  4. [洛谷P1024]python一元三次方程求解

    [洛谷P1024]python一元三次方程求解 首先将方程幂次形式转换为乘积形式(可节省代码运行时间) 其次使用零点定理F(x1)∗F(x2)<0F({x}_1)*F({x}_2)<0F( ...

  5. 洛谷——P1024 [NOIP2001 提高组] 一元三次方程求解

    P1024 [NOIP2001 提高组] 一元三次方程求解 题目描述 有形如:a x^3 + b x^2 + c x + d = 0a**x3+b**x2+c**x+d=0 这样的一个一元三次方程.给 ...

  6. P1024 一元三次方程求解 牛顿迭代+盛金公式+二分+勘根定理

    P1024 一元三次方程求解 传送门 题目描述 有形如:ax^3+bx^2+cx^1+dx^0=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实 ...

  7. 【luogu 1024 一元三次方程求解】二分思想

    题目出自luogu 1024 一元三次方程求解 描述: 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该方程中各项的系数(a,b,c,d 均为实数),并约定该方程存在三个不同实根( ...

  8. P1024 [NOIP2001 提高组] 一元三次方程求解 /1238:一元三次方程求解

    P1024 [NOIP2001 提高组] 一元三次方程求解 /1238:一元三次方程求解 # [NOIP2001 提高组] 一元三次方程求解 ## 题目描述 有形如:$a x^3 + b x^2 + ...

  9. 一元三次方程求解-二分

    一元三次方程求解 题目描述 链接:https://ac.nowcoder.com/acm/problem/16694 来源:牛客网 有形如:ax3+bx2+cx+d=0 这样的一个一元三次方程.给出该 ...

最新文章

  1. 使用 SAX 解析器简化文档处理程序的编写
  2. 信息工程大学806自主命题2020年回忆版真题2020年信息工程大学,初试806回忆版
  3. GIS地图界面和计算机图形学填充算法
  4. 应用名称本地化/国际化
  5. dotNet 5 中执行 Node.js
  6. 【Elasticsearch】Elasticsearch 集群协调迎来新时代
  7. linux 清除内存和Cache方法
  8. 基于ZigBee设计的天气监测系统
  9. sql server在指定模式下创建表
  10. Educational Codeforces Round 51 (Rated for Div. 2).B. Relatively Prime Pairs(水题)
  11. 机械革命z2黑苹果改造计划第三番-macOS键盘快捷键Win键盘适配
  12. JavaScript基础(4)_强制类型转换
  13. 使用一条sql语句在postgres中查询总数和分页数据
  14. 研究生如何发表论文必读
  15. Mac上好用的连接服务器的工具(Termius)
  16. 2021年苍南桥墩高中高考成绩查询,2021年温州各高中高考成绩排名及放榜最新消息...
  17. 力扣(Leetcode)695. 岛屿的最大面积(Java)带注释
  18. amtisy带你暴炒基金Action-Three:聊聊如何选基金
  19. java计算机毕业设计HTML5“忆红楼梦之味”网站设计与实现MyBatis+系统+LW文档+源码+调试部署(2)
  20. intellij idea 设置显示空格

热门文章

  1. 用“伦理”完善“治理”
  2. Zemax学习笔记(13)- ZEMAX 中的玻璃库波长范围的使用范围
  3. Tutorial:DomQuery Basics(DomQuery的基础)
  4. 面试时经常会被问到的的问题
  5. 临时表的特点及使用(SQL Server)
  6. 匠人之心,成就真正Python全栈工程师
  7. Cocos2dx从零单排游戏开发(一)环境搭建
  8. 朋友让帮忙写个飞单机器人管理系统...
  9. 【Excel知识秒懂】$引用使用方法
  10. 2021年安全员-C证(陕西省)考试及安全员-C证(陕西省)考试报名