UVA - 10341 Solve It (数学--二分法求解)
来源:互联网 发布:想听歌下载什么软件 编辑:程序博客网 时间:2024/06/03 08:41
大体题意:
给你一个函数,给你定义域,求出是否有解,有解输出解,无解输出 No solution
思路:
分析式子和输入 知道这个式子是一个单调递减的,那么就可以用二分了!
当两个端点 的函数值乘积大于0时,说明同号,则无解!
否则有唯一解! 直接二分找就可以了!
教训:
这种求解方程的二分,涉及到小数的二分 ,最好用循环多少来解,不要用l < r 容易出错!!
#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<cstdlib>using namespace std;double p,q,r,s,t,u;const double e = 2.718281828459045;const double eps = 1e-10;double f(double x){return p*pow(e,-x) + q*sin(x) + r * cos(x) + s*tan(x) + t * x * x + u;}int main(){while(scanf("%lf %lf %lf %lf %lf %lf",&p, &q, &r, &s, &t, &u) == 6){if (fabs(f(1)) < eps)printf("1.0000\n");else if (fabs(f(0)) < eps)printf("0.0000\n");else if (f(1) * f(0) > eps)printf("No solution\n");else {double l = 0;double r = 1;for (int i = 0; i < 100; ++i){double mid = (l + r) / 2.0;if (f(mid) > 0)l = mid;else r = mid;}printf("%.4lf\n",(l+r)/2.0);}}return 0;}
0 0
- UVA - 10341 Solve It (数学--二分法求解)
- UVA - 10341 Solve It (二分法)
- UVA - 10341 - Solve It (二分求解)
- UVA - 10341 Solve It 二分法求结果
- uva - 10341 - Solve It(二分查找,数学)
- UVA 10341- Solve It(二分+精度求解方程值)
- UVa 10341-Solve It
- UVa 10341 - Solve It
- uva 10341 - Solve It
- uva 10341 - Solve It
- UVA - 10341 Solve It
- UVa 10341 - Solve It
- UVA 10341 - Solve It
- Uva 10341 Solve It
- UVa:10341 Solve It
- UVA 10341 Solve It
- UVa 10341 Solve It
- uva 10341 Solve It
- 热烈祝贺博客原创文章数突破100!!!
- C#简易截图工具源码下载
- codeforces 675C Money Transfers(贪心)
- Android 常用的adb命令
- ListView重新可见的时候突然出现了崩溃了。。。。。
- UVA - 10341 Solve It (数学--二分法求解)
- SDK和HDK
- git 常用命令
- 2016.09.03【初中部 NOIP提高组 】模拟赛A总结
- fastDFS安装和使用
- faster rcnn 的重新训练
- 放大镜
- 启动模式:singleTask 不是 Intent.FLAG_ACTIVITY_NEW_TASK!
- 关于面试时项目的介绍