当前位置: 首页 > news >正文

UVA10341 Solve It 题解

UVA10341 Solve It

题目描述

Link: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=15&page=show_problem&problem=1282

PDF

输入格式

输出格式

输入输出样例 #1

输入 #1

0 0 0 0 -2 1 1 0 0 0 -1 2 1 -1 1 -1 -1 1

输出 #1

0.7071 No solution 0.7554

Solution

1. 大致题意

  • 求方程p exp ⁡ ( − x ) + q sin ⁡ ( x ) + r cos ⁡ ( x ) + s tan ⁡ ( x ) + t x 2 + u = 0 p\exp(-x)+q\sin(x)+r\cos(x)+s\tan(x)+tx^2+u=0pexp(x)+qsin(x)+rcos(x)+stan(x)+tx2+u=0在区间[ 0 , 1 ] [0,1][0,1]上的解,无解输出No Solution \texttt{No Solution}No Solution
  • 输入包含多组不同的( p , q , r , s , t , u ) (p,q,r,s,t,u)(p,q,r,s,t,u),针对每一组数据求解该方程。

2. 分析

解决此类方程的通用方法有两种,一种是牛顿法,一种是二分法。

设函数
f ( x ) = p exp ⁡ ( − x ) + q sin ⁡ ( x ) + r cos ⁡ ( x ) + s tan ⁡ ( x ) + t x 2 + u f(x)=p\exp(-x)+q\sin(x)+r\cos(x)+s\tan(x)+tx^2+uf(x)=pexp(x)+qsin(x)+rcos(x)+stan(x)+tx2+u
则导函数
f ′ ( x ) = − p exp ⁡ ( − x ) + q cos ⁡ ( x ) − r sin ⁡ ( x ) + s cos ⁡ 2 ( x ) + 2 t x f'(x)=-p\exp(-x)+q\cos(x)-r\sin(x)+\dfrac{s}{\cos^2(x)}+2txf(x)=pexp(x)+qcos(x)rsin(x)+cos2(x)s+2tx
根据题意,由于p , r p,rp,r为正,q , s , t q,s,tq,s,t为负,x xx的范围为[ 0 , 1 ] [0,1][0,1],因此容易看出f ′ ( x ) ≤ 0 f'(x)\le0f(x)0在区间[ 0 , 1 ] [0,1][0,1]恒成立,也就是说f ( x ) f(x)f(x)是区间[ 0 , 1 ] [0,1][0,1]的单调函数。

在具有单调性(单调递减)的情况下:

  • 判断无解只需要看端点值,如果f ( 0 ) < 0 f(0)<0f(0)<0f ( 1 ) > 0 f(1)>0f(1)>0即为无解。
  • 可以直接使用二分求解,使用 Desmos 绘制得到的函数的图像如下。

考虑到所求的函数在区间( − ∞ , + ∞ ) (-\infty,+\infty)(,+)不连续,存在间断点并且方程可能存在区间[ 0 , 1 ] [0,1][0,1]以外的解(参考下图)因此不推荐使用牛顿法求解

3. 代码

#include<bits/stdc++.h>doublep,q,r,s,t,u,eps=1e-8,le,re;doublef(doublex){returnp*exp(-x)+q*sin(x)+r*cos(x)+s*tan(x)+t*pow(x,2.)+u;}voidkernel(void){inti=1;if(scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&r,&s,&t,&u)==EOF)exit(0);if(f(1)>0||f(0)<0)printf("No solution\n");else{le=0.;re=1.;while(re-le>=eps)f((le+re)/2.)>=0.?le=(le+re)/2.:re=(le+re)/2.;printf("%.4lf\n",le);}return;}intmain(){while(1)kernel();}
http://www.jsqmd.com/news/825907/

相关文章:

  • 蜂群协议深度解析:构建高弹性分布式系统的核心原理与实践
  • Day08 用户下单
  • 基于LLM视觉的智能家居自动化:ha-llmvision集成部署与实战指南
  • YoungsDB:为什么它能同时扛住持续写入与高频分析?
  • 别再傻傻分不清了!用Python和NumPy实战理解概率论中的‘相关’与‘独立’
  • AMD NPU加速GPT-2微调:边缘AI训练实战解析
  • 搞定了-----
  • 2026年质量好的江苏球型伸缩接头厂家综合对比分析 - 品牌宣传支持者
  • 3分钟搞定!WarcraftHelper终极指南:让魔兽争霸3在现代电脑上完美运行
  • CRUD 入门:数据的增、查、改、删
  • 湖南防火门技术选型指南:国曼消防工艺解析与新国标验收要点
  • Ai小程序入门06-数据绑定(小白入门:从静态到动态,让页面数据显示得活灵活现)
  • AI教材生成秘籍:利用AI写教材,轻松实现低查重与高质量内容!
  • LeRobot SO-ARM101机械臂教程:三、遥感操作
  • 基于CRICKIT与CircuitPython的蛇形机器人避障项目实践
  • 数据不出本机、全程离线运行,这个AI工具让我告别手动办公
  • AI进阶,韧性必修:从传统灾备到数据韧性“变形记”
  • 15种logo检测数据集9626张VOC+YOLO格式
  • 从图论到解析分子结构的应用:Floyd-Warshall 算法
  • 强化学习如何优化大语言模型:TextRL实战指南
  • OpenCV LineMod算法实战:从模板创建到目标检测的完整调用指南
  • LLM提示词编排引擎:构建可维护AI工作流的工程化实践
  • Mali GPU着色器优化与性能分析实战
  • 抖音直播数据抓取实战:6步构建实时WebSocket采集系统
  • 别再手动改标注了!一个Python脚本搞定Labelme、LabelImg、YOLO格式互转(附完整代码)
  • 1688代运营/一个月询盘暴涨325%!1688代运营是怎么做到的?
  • 构建个人代码库:从零到一打造高效开发工具箱
  • C++学习笔记10:auto关键字
  • 为什么92%的团队GitOps落地失败?DeepSeek内部未公开的4层权限治理模型首次披露
  • AI编程助手规则配置指南:提升Cursor代码生成质量与规范一致性