news 2026/5/16 4:03:03

UVA10341 Solve It 题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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();}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 4:00:48

Qt 主窗口全家桶:菜单栏、工具栏、状态栏与对话框完全指南

一、菜单栏Qt 中的菜单栏是通过QMenuBar 这个类来实现的。一个主窗口最多只有一个菜单栏。位于主窗口顶部、主窗口标题栏下面。菜单栏中包含菜单.菜单中包含菜单项。1、创建菜单栏代码示例&#xff1a;方法一&#xff1a;用函数menuBar()创建菜单栏//创建菜单栏QMenuBar* menub…

作者头像 李华
网站建设 2026/5/16 4:00:48

绝缘子缺陷检测数据集2148张VOC+YOLO格式

绝缘子缺陷检测数据集2148张VOCYOLO格式数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2148 标注数量(xml文件个数)&#xff1a;2148 标注数…

作者头像 李华
网站建设 2026/5/16 3:57:18

LLM提示词编排引擎:构建可维护AI工作流的工程化实践

1. 项目概述&#xff1a;一个为大型语言模型设计的“交响乐指挥家”最近在折腾大语言模型应用开发的朋友&#xff0c;估计都遇到过同一个头疼的问题&#xff1a;提示词管理。当你手头有几个、十几个甚至几十个不同的LLM任务需要编排时&#xff0c;比如先让模型A做摘要&#xff…

作者头像 李华
网站建设 2026/5/16 3:57:17

3D高斯泼溅渲染技术:无排序随机渲染原理与优化

1. 3D高斯泼溅渲染技术概述3D高斯泼溅(3D Gaussian Splatting, 3DGS)是近年来计算机图形学领域的一项突破性技术&#xff0c;它通过大量可微分的高斯基元来表示三维场景&#xff0c;实现了高质量的实时神经辐射场渲染。这项技术的核心思想是将传统点云中的离散点替换为具有空间…

作者头像 李华
网站建设 2026/5/16 3:54:40

基于ESP8266与aREST框架的WiFi遥控小车制作全攻略

1. 项目概述&#xff1a;从零打造一个“听话”的WiFi小车几年前&#xff0c;当我第一次把一块ESP8266模块焊接到洞洞板上&#xff0c;看着它成功连上家里的WiFi并点亮一个LED时&#xff0c;那种感觉就像打开了一扇新世界的大门。一个成本不到一杯咖啡的芯片&#xff0c;竟然内置…

作者头像 李华