HDU 2199 牛顿迭代
来源:互联网 发布:python 盲水印 编辑:程序博客网 时间:2024/04/30 08:05
HDU 2199
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=2199
题意:
求一个给定高次方程的根。
思路:
练习牛顿迭代。至于为什么要遍历所有整数点来取根暂且不知,精度的取法和退出方式好像也有讲究。
源码:
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <queue>
using namespace std;
const double eps = 1e-6;
double Newton_iterative(double a, double b, double c, double d, double e, double x0)
{
int cnt = 0;
double x = x0;
while(1){
x0 = x;
long double f1 = ((((a * x + b) * x + c) * x + d) * x + e);
long double f2 = (((4 * a * x + 3 * b) * x + 2 * c) * x + d);
x = x0 - f1 / f2;
cnt++;
if(fabs(f1) < eps)
break;
if( cnt > 50)
return -1;
}
return x;
}
int main()
{
double a, b, c, d, e;
a = 8, b = 7, c = 2, d = 3;
int t;
scanf("%d", &t);
while(t--){
double lv;
scanf("%lf", &lv);
e = 6 - lv;
int ok = 0;
double u = 0;
double x;
for(u = 0.0 ; u < 100.0 ; u++){
x = Newton_iterative(a, b, c, d, e, u);
if(x >= 0 && x <= 100){
// printf("u = %f\n", u);
ok = 1;
break;
}
}
if(ok)
printf("%.4f\n", x);
else
printf("No solution!\n");
}
return 0;
}
- HDU 2199 牛顿迭代
- HDU 2899 牛顿迭代
- hdu-2199、hdu2899、hdu2141、hdu2289二分,牛顿迭代
- 牛顿迭代、牛顿下山
- 关于牛顿迭代
- 牛顿迭代公式
- 牛顿迭代
- 牛顿迭代算法
- 牛顿迭代
- 牛顿迭代优化
- 牛顿迭代公式
- 牛顿迭代matlab
- 牛顿迭代
- 重聚 牛顿迭代
- nyoj 503(hdu 2199) 解方程(牛顿迭代公式)
- 牛顿迭代法、迭代逼近
- MATLAB 牛顿迭代算法
- 开方 牛顿迭代公式
- 我的暑假acm集训总结
- ssh框架的搭建流程
- 五年了
- 执行 install.sh --clang-completer时候出现这种情况请问怎么处理?
- WIN7+Ubuntu双系统,出现Entering rescue mode问题
- HDU 2199 牛顿迭代
- 监听文本框事件几种方法总结
- Spark编程使用的基本指令
- 欢迎使用CSDN-markdown编辑器
- 做app的一些UI包
- nginx完美支持thinkphp3.2.2
- 二叉树的遍历
- Sqlite 清空表中所有数据 并重置自增长数据
- POJ 2823 Sliding Window(滑动窗口问题__优先队列||单调队列)