搜索算法 problem(1001)
来源:互联网 发布:java项目加密 编辑:程序博客网 时间:2024/06/06 05:20
1.简明题意
这个题的意思就是输入一个y求8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y在0~100之间的解
2.解题思路
利用二分方法求出这个方程的极值点,然后带入原方程就可以
3.感想
求一个方程利用程序就可以求出来解,不论方程多复杂
4.AC代码
#include<iostream>#include<math.h>#include<iomanip>using namespace std;const double eps = 1e-10;double y;double yuanfx(double x){ return 8 * pow(x, 4) + 7 * pow(x, 3) + 2 * pow(x, 2) + 3 * x + 6-y;}double daofx(double x){ return 32 * pow(x, 3) + 21 * pow(x, 2) + 4 * x+3;}double qiujie(){ double mid, right, left; left = 0; right = 100; while (left + eps < right) { mid = (left + right) / 2; while (fabs(yuanfx(mid))>1e-5) { if (yuanfx(mid) > 0) { right = mid - 1; } else { left = mid + 1; } mid = (left + right) / 2; } } return mid;}//double solve()//{// double mmid, right, left;// left = 0;// right = 100;// while (left + eps < right)// {// mmid = (left + right) / 2;// if (y - daofx(mmid) < eps)// {// right = mmid;// }// else// {// left = mmid;// }// }// return mmid;//}int main(){ double qiujie(); /*double solve();*/ double yuanfx(double x); int a; /*double mid, result;*/ cin >> a; for (int i = 0; i < a; i++) { cin >> y; /* mid=solve(); result = yuanfx(mid);*/ if (yuanfx(0)>0||yuanfx(100)<0) { cout << "No solution!" << endl; } else { cout << setiosflags(ios::fixed) << setprecision(4) << qiujie() << endl; } } return 0;}
0 0
- 搜索算法 problem(1001)
- 搜索算法 problem(1002)
- 搜索算法 problem(1003)
- 搜索算法 problem(1013)
- 搜索算法 problem(1014)
- 搜索算法 problem(1008)
- 搜索算法 problem(1005)
- 搜索算法 problem(1017)
- 搜索算法 problem(1009)
- 搜索算法-二分搜索-方程解问题(problem 1001)
- 搜索算法-二分搜索-方程解问题(problem 1002)
- Problem G: 逃脱(搜索)
- 1016 Prime Ring Problem 搜索(深搜)
- Prime Ring Problem(搜索 深度优先)
- HDU1016 - Prime Ring Problem (简单搜索)
- 区间搜索(算法)
- 搜索算法(poj1011)
- 贪心算法 Problem B 1001
- 键盘隐藏
- 阿里云 centos安装oracle 11g 完全图解
- 欢迎使用CSDN-markdown编辑器
- 软件更新方法、系统及设备
- 第八周项目34-我的数组类
- 搜索算法 problem(1001)
- Linux命令学习中
- LeetCode *** 187. Repeated DNA Sequences
- C++继承方式(转载)
- 面试题当中的算法题
- apache的/var/www/html无法访问
- TL431基本应用
- java环境变量设置原理
- tableView的selected