[NOIP 2001 提高组] 一元三次方程求解

news/2025/11/7 21:43:59/文章来源:https://www.cnblogs.com/luocont/p/19200949

看题目数据范围:
方程存在三个不同实根(根的范围在 −100 至 100 之间)
可以知道这道题其实可以暴力

#include <iostream>
#include <cstdio>
using namespace std;
int main()
{double a,b,c,d;scanf("%lf%lf%lf%lf",&a,&b,&c,&d);for(double i=-100;i<=100;i+=0.001){double j=i+0.001;double y1=a*i*i*i+b*i*i+c*i+d;double y2=a*j*j*j+b*j*j+c*j+d;if(y1>=0&&y2<=0||y1<=0&&y2>=0){double x=(i+j)/2;printf("%.2lf ",x);}}
}

当然还有公式打法:
一元三次方程:aX3+bX2+cX+d=0
重根判别公式:

A=bX2-3ac
B=bc-9ad
C=c2-3bd

当A=B=0时,X1=X2=X3= -b/3a= -c/b = -3d/c

#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
int main()
{double a,b,c,d;double as,bs,t,si;double x1,x2,x3;cin>>a>>b>>c>>d;as=b*b-3*a*c;bs=b*c-9*a*d;t=(2*as*b-3*a*bs)/(2*sqrt(as*as*as));si=acos(t);x1=(-b-2*sqrt(as)*cos(si/3))/(3*a);x2=(-b+sqrt(as)*(cos(si/3)+sqrt(3)*sin(si/3)))/(3*a);x3=(-b+sqrt(as)*(cos(si/3)-sqrt(3)*sin(si/3)))/(3*a);cout<<fixed<<setprecision(2)<<x1<<" ";cout<<fixed<<setprecision(2)<<x3<<" ";cout<<fixed<<setprecision(2)<<x2<<" ";return 0;
}

当然最推荐的还是二分答案区间:

#include<cstdio>
double a,b,c,d;
double fc(double x)
{return a*x*x*x+b*x*x+c*x+d;
}
int main()
{double l,r,m,x1,x2;int s=0,i;scanf("%lf%lf%lf%lf",&a,&b,&c,&d);  //输入for (i=-100;i<100;i++){l=i; r=i+1;x1=fc(l); x2=fc(r);if(!x1) {printf("%.2lf ",l); s++;}      //判断左端点,是零点直接输出。//不能判断右端点,会重复。if(x1*x2<0)                             //区间内有根。{while(r-l>=0.001)                     //二分控制精度。{m=(l+r)/2;  //middleif(fc(m)*fc(r)<=0) l=m; else r=m;   //计算中点处函数值缩小区间。}printf("%.2lf ",r);  //输出右端点。s++;}if (s==3) break;             //找到三个就退出大概会省一点时间}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/959202.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EPnP算法学习随笔

EPnP算法学习随笔这几天刚好在看epnp算法,写篇随笔简要回顾一下。 PnP问题是个很经典的问题,就是根据图像上的关键点来估计相机的位姿,这里主要研究的是单目摄像机,但是值的注意的是单目的精度一般都比较差,因为单…

毒盘未转存仅支持在线观看30s

毒盘未转存仅支持在线观看30s转载,原作者不详 解决方案:控制台里面输入这些代码,回车。 let video = document.querySelectorAll("#html5player_html5_api")[0] video.controls="true" video.p…

Advantech iView SQL注入漏洞分析:认证绕过与数据泄露

本文详细分析了CVE-2022-50594漏洞,涉及Advantech iView SNMP管理工具中的SQL注入漏洞,攻击者可绕过认证窃取包括明文密码在内的用户数据,CVSS评分8.8分。概述 CVE-2022-50594是Advantech iView软件中存在的一个高危…

【机器学习入门】7.1 决策树 —— 像 “判断流程图” 一样做分类 - 教程

【机器学习入门】7.1 决策树 —— 像 “判断流程图” 一样做分类 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

P14322 「ALFR Round 11」E 空崎ヒナ 小结

首先把 x 移个项,变成 abs(b[i]-x)。 然后你发现这个东西就是 max a_i 的倍数了。 这个东西很好写,首先你先预处理单调栈和后缀答案。 后缀答案不能在线,于是离线处理。 然后你发现回答询问也不能在线。 于是你再离…

AI元人文:理论自省与客观评估

AI元人文:理论自省与客观评估引言:在理想与现实之间 AI元人文理论作为一种突破性的价值共识框架,其生命力不仅在于理论建构的完整性,更在于持续的自我审视与客观评估。本文旨在以三值纠缠思维为镜,对这一理论体系…

[Element Plus 组件库的官方 API 参考文档] 的部分内容的解释

对于初学者,不需要死记硬背这个 API 文档。更好的学习顺序是:先看组件的基础示例和演示代码 → 模仿着写出能运行的代码 → 有特殊需求时,再回头查这个 API 文档Q1: 除了template是插槽,怎么连el-menu-item都是?…

ZK笔记

1.官网下载地址 https://zookeeper.apache.org/ https://archive.apache.org/dist/zookeeper/ 2.安装步骤 1.安装jdk 2.解压压缩包 tar -xf apache-zookeeper-3.5.7-bin.tar.gz -C /tol/app mv apache-zookeeper-3.5…

完整教程:《以 Trae 为桥:高效集成豆包 1.6 API 的实践与思考》

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

完整教程:Labview项目01:标准可配置序列测试框架

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

20251107

每次写类的时候都会觉得发明面向对象的人真是个天才。 今天晚上又稍微写了点,增加了碰撞伤害,现在玩家碰到怪物会回扣怪物.at血量并进入一秒的无敌状态,并且自身颜色变为白色,也是第一次体会到异步的方便之处吧。更…

从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题

从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题从零开始实现简易版Netty(十) MyNetty 通用编解码器解决TCP黏包/拆包问题 1. TCP黏包拆包问题介绍 在上一篇博客中,lab9版本的MyNetty已经实现…

[Python刷题记录]-除自身以外数组的乘积-普通数组-中等

[Python刷题记录]-除自身以外数组的乘积-普通数组-中等链接:238. 除自身以外数组的乘积 - 力扣(LeetCode) 题目限制不能使用除法,所以开了两个数组listl和listr,listl用来存储i之前的所有数字之乘积,listr用来存…

Transformer Decoder 中序列掩码(Sequence Mask / Look-ahead Mask) - 详解

Transformer Decoder 中序列掩码(Sequence Mask / Look-ahead Mask) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

P9785 [ROIR 2020] 对常规的斗争 (Day1) 题解

题目传送门 思路 我们不难发现,当区间中没有重复的点很好求,但如果中间部分产生重复的点,他们所产生的贡献会减少。 正着推不好推,那就反着来。 我们可以考虑计算当区间长度确定时,每个区间内每个元素是否出现过。…

实用指南:超越CNN和Transformer!Mamba结合多模态统领图像任务!

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Docker镜像建立【MSSQL2022】

sudo docker stop cont_mssql2022 sudo docker rm cont_mssql2022sudo mkdir -p ~/zapas/dbdata/mssql sudo chmod 777 ~/zapas/dbdata/mssqlcd ~/zapas/dbdata/mssql mkdir testdb sudo chmod 777 ~/zapas/dbdata/mss…

灰度发布

目录背景和价值参考资料 背景和价值 在 Spring Cloud 架构中,灰度发布(又称金丝雀发布)的核心目标是将新版本服务仅对部分用户 / 流量开放,验证稳定性后再全量上线,以降低发布风险。实现需结合服务注册发现、负载…

【刷题笔记】AT 经典 90 题

T2 爆搜 注意,string 只能与 string 运算,无法和 char 运算;访问 string 某一位时则是 char T5 数位 DP。 转化题意:若 \(x\) 是 \(B\) 的倍数,则 \(x\mod B = 0\)。 先设计 DP 状态,设 \(f_{i,j}\) 表示看到第 …