博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA10341:Solve It(二分+math.h库)
阅读量:6670 次
发布时间:2019-06-25

本文共 987 字,大约阅读时间需要 3 分钟。

题目:

题目要求:p*e-xq*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0,求出x的值;

where 0 <= x <= 1.

题目解析:

首先要学会观察题目,因为p,r>=0,q,s,t<=0,对上面方程求导发现导数<=0,所以原方程单调递减,(满足使用二分的条件)然后假如方程有答案,则可以利用二分来查找满足条件的解,注意二分的条件边界(!!!),其次上面值都可以通过调用math.h库来实现,具体实现请看代码。

#include 
#include
#include
#include
#include
#define eps 1e-9using namespace std;double p, q, r, s, t, u;double findx(double x){ return (p*exp(-x) + q*sin(x) + r*cos(x) + s*tan(x) + t*x*x+u);//exp(x)为e^x}int main(){ while(scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&r,&s,&t,&u)!=EOF) { double s1 = findx(0), s2 = findx(1.0); if(s1*s2 > 0)//说明方程没解 { printf("No solution\n"); continue; } double lf = 0.0, rf = 1.0, sum, m; while(rf-lf > eps) { m = (rf+lf)/2.0; sum = findx(m); if(sum < 0) rf = m; else lf = m; } printf("%.4lf\n", rf); } return 0;}

 

转载地址:http://ztoxo.baihongyu.com/

你可能感兴趣的文章
js 在一个DIV前、中、后、插入新DIV
查看>>
Java设计模式:桥接模式
查看>>
AutoMapper的简单使用
查看>>
tomcat 服务不支持 chkconfig 以及其他服务不能添加到开机启动时的操作
查看>>
【转载】Winform开发框架之权限管理系统
查看>>
Apache Spark 2.2.0 中文文档 - Spark Streaming 编程指南 | ApacheCN
查看>>
让PowerShell用上Git
查看>>
XXXXX was compiled with optimization - stepping may behave oddly; variables may not be available.
查看>>
Linux0.11内核--几种地址(逻辑地址、线性地址、物理地址)的含义
查看>>
posix多线程有感--自旋锁
查看>>
静态库中如何包含资源文件
查看>>
NOIP2014 提高组 Day2——寻找道路
查看>>
设置Sysctl.conf用以提高Linux的性能(最完整的sysctl.conf优化方案)
查看>>
tp路由+伪静态+去掉index.php
查看>>
R.I.P. PK
查看>>
今日晚餐:姹紫嫣红阳春面
查看>>
【转载】使用铁哥SmartFlash快速开发方案:66行代码搞定抽奖程序!
查看>>
Map<key,value>泛型get(key)值为null问题解决
查看>>
ZendFramework学习第一章
查看>>
40种网页小技巧
查看>>