点击打开链接uva 10341
题目意思: 给定一个函数的表达式,然后给定系数值,要我们求出未知数x
解题思路: 1:由函数的性质可知,如果有解,那么将区间两个点带入求出的数值的乘积为负数。首先先判断这个函数是否有解,如果无解直接返回输出,有解进行二分查找
2:二分查找时候由于0=<x<=1,那么初始化left = 0 , right = 1,我习惯用迭代二分,所以这里用while循环代替递归,但是由于double类型的比较会有很大的误差,所以用left-right < 1e-9来判断相等而不是直接left-right == 0,然后我么用mid来带入函数,如果得到的值是大于0,那么这里是要向右递归的,因为这个函数是递减的,由f(0) > f(1) 可以知道,所以这里很平常的有些不同。
3:注意迭代二分的使用,注意double类型的比较
代码:
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <cstdio>
#include <stack>
#include <queue>
#include <cmath>
#include <set>
using namespace std
double p , q , r , s , t , u;
void solve(){
double left , right , mid , tmp;
double s1 , s2;
s1 = p*(exp(0))+q*sin(0)+r*cos(0)+s*tan(0)+t*0+u;
s2 = p*(exp(-1))+q*sin(1)+r*cos(1)+s*tan(1)+t*1+u;
if(s1*s2 > 0) printf("No solution\n");
else{
left = 0.0 ; right = 1.00;
while(right-left > 1e-9){//注意判断条件
mid = (left +right)/2;//中间值
tmp = p*(exp(-mid))+q*sin(mid)+r*cos(mid)+s*tan(mid)+t*mid*mid+u;//求出函数值
if(tmp < 0) right = mid;//小于0则要向左边二分
else left = mid;//否则右边二分
}
printf("%.4lf\n" , mid);//输出的mid就是x值
}
}
int main(){
//freopen("input.txt" , "r" , stdin);
while(scanf("%lf%lf%lf%lf%lf%lf" , &p,&q,&r,&s,&t,&u) != EOF)
solve();
return 0;
}
分享到:
相关推荐
Algorithm-How-to-Solve-it-by-Computer-R-G-Dromey.zip,如何用计算机求解-r.g.dromey解,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
use-design-to-solve-technical-bottlenecks-090419084944-phpapp01
标题 "C-code-to-solve-quadratic-equation-源码.rar" 暗示这是一个包含C语言源代码的压缩包,其目的在于解决二次方程。二次方程是形如 ax^2 + bx + c = 0 的方程,其中a、b、c是常数,a不等于0。在数学中,二次方程...
XPath-Solve.rar 是一个压缩包,包含了多个与XPath和XML处理相关的资源,特别是针对Java环境下的应用。XPath是一种在XML文档中查找信息的语言,而Java是广泛使用的编程语言,经常用于处理XML数据。这个压缩包可能是...
在给定的“matlab-solve.rar_fdtd_fdtd_solve MATLAB”压缩包中,主要包含了一个使用MATLAB进行有限差分时间域(Finite-Difference Time-Domain, FDTD)方法的仿真程序。FDTD是电磁学领域常用的一种数值计算方法,它...
"藏经阁-Redesigning-PKI-To-Solve-Revocation-Expiration-And-Rotation-Problems" 今天,我们要讨论的是如何重设计Public Key Infrastructure(PKI),以解决吊销、到期和轮换问题。在讲解之前,让我们先了解什么...
"Algorithm-solve-leetcode-problems.zip"中的"solve-leetcode-problems-master"文件夹很可能是包含了每个LeetCode问题的解题代码,你可以通过阅读这些代码来学习作者是如何应用算法来解决问题的。每一道题目的解决...
**C/C++ 实现**:`pomdp-solve-v4.0.tar.gz` 提供的是用 C/C++ 编程语言实现的 POMDP 解决器。C/C++ 是底层系统编程的常用语言,因其高效和灵活性,适用于构建复杂的计算密集型任务,如 POMDP 的求解。 **POMDP ...
grDecOrd - solve the problem about decomposition of the digraph to the sections with mutually accessed vertexes (strongly connected components); grDistances - find the distances between any vertexes ...
leetcode中国 怎样解题 leetcode 记得高中时偶然翻到一本小册子,书名叫《怎样解题》。它是美国的一个数学家,教育家写的。 当时我还陷入在应试教育的题海战术中,靠着大量的刷数学题来达到条件式的反射。...
Polya, "How to Solve It" will show anyone in any field how to think straight. In lucid and appealing prose, Polya reveals how the mathematical method of demonstrating a proof or finding an unknown ...
Create React App入门该项目是通过引导的。可用脚本在项目目录中,可以运行:yarn start在开发模式下运行应用程序。打开在浏览器中查看它。如果您进行编辑,则页面将重新加载。您还将在控制台中看到任何棉绒错误。...
运行ipython 笔记本(在目录内部lets-start-solve-problem-on-kaggle ): ipython notebook 。 注意:您需要在安装ipython之前(以及一些其他所需的软件包),或者仅安装 。 之后,您将完成所有三个步骤(在不同...
Gauss seidel matlab program for feeders
该程序用贪心算法来求解0-1背包问题 采用贪婪准则
在压缩包中的"issue-solve-code-main"可能是主目录或者主文件,通常包含了一系列的子文件和目录,这些可能包括: 1. **错误处理和调试**:PHP代码中可能会出现各种运行时错误,如语法错误、类型错误、逻辑错误等。...
利用matlab开发一套求解雷诺方程的办法,利用有限差分法。
逐步解决数独 Vue.js + PixiJS + Flask + Python3 ...cd sudo-dynamic-solve python3 -m venv venv source venv/bin/activate pip install -r requirements.txt flask run 打开浏览器,输入: 享受!
作者: G. Polya 副标题: A New Aspect of Mathematical Method (Princeton Science Library) ISBN: 9780691119663 页数: 288 定价: USD 16.95 出版社: Princeton University Press 装帧: Paperback ...