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

三分

篇首语

啊~~三分~你比二分多一分~

              ——A86562U

正文

顾名思义,三分会比二分多一个分区,

但它是用来做什么的呢?

先来偷一道拿一道例题来举例

P3382 三分 - 洛谷

我们把二分的模板偷一份拿一份过来

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e1+10;
int n;
double l,r,a[N];
double check(double x)
{//求多项式,复制的 double sum=0;for(int i=n;i>=0;i--){sum=sum*x+a[i];}return sum;
}
signed main()
{cin>>n>>l>>r;for(int i=n;i>=0;i--)//反向输入系数 
    {cin>>a[i];}while(fabs(l-r)>=eps){double mid=(l+r)/2;if(check(mid)</*???*/){l=mid;//舍弃左区间
        }else{r=mid;//舍弃右区间
        }}printf("%.6f",r);return 0;
}

可是我们需要比较两次(l与中间值比较,r与中间值比较),而我们甚至不知道中间值是不是对的。所以我们要使用神奇的妙妙工具(1):

eps

eps是步长,一般是指定的精度的十分之一。它可以让我们的代码变成这样:

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e1+10;
const double eps=1e-6;
int n;
double l,r,a[N];
double check(double x)
{//求多项式,复制的 double sum=0;for(int i=n;i>=0;i--){sum=sum*x+a[i];}return sum;
}
signed main()
{cin>>n>>l>>r;for(int i=n;i>=0;i--)//反向输入系数 
    {cin>>a[i];}while(fabs(l-r)>=eps)//l<=r可能会发生精度问题 
    {double mid=(l+r)/2;if(check(mid+eps)>check(mid-eps)){l=mid;//舍弃左区间
        }else{r=mid;//舍弃右区间
        }}printf("%.6f",r);return 0;
}

这样可以把mid左边一点点的函数值和右边一点点的函数值比较,舍弃一边的区间,这样不断缩小区间直到满足精度要求。

这,就是三分。

http://www.zskr.cn/news/11692.html

相关文章:

  • 完整教程:微服务基础2-网关路由
  • nginx ipv6 proxy配置
  • (三)数仓人必看!ODS 到 DWS 各层设计规范全解析,含同步/存储/质量核心要点
  • 【shell】系统资源不足fork: retry: Resource temporarily unavailable
  • 【语文训练】女乃龙?田力乃龙?
  • 抖动分为3个方面
  • 关于ubuntu 用户切换的细节 su - user 和su user
  • 用 SeaTunnel 同步 MySQL 到 Doris:全量增量 + SQL 过滤
  • 在CodeBolcks下wxSmith的C++编程教程——使用自定义绘制和鼠标处理创建项目
  • 10_ select/poll/epoll实现服务端的io多路复用
  • 模拟实战配置实验
  • 基于MATLAB S函数实现多智能体间歇通信仿真
  • comfyui-数字人
  • 我天,前端岗要消亡了吗?
  • java8的集合新API - --
  • 基于MATLAB/Simulink的500kW三相光伏逆变器仿真
  • Docker Compose启动多个镜像实例
  • 深入解析:⸢ 伍-Ⅱ⸥ ⤳ 默认安全治理实践:水平越权检测 前端安全防控
  • mkfx 对磁盘设置标签
  • kubelet源码阅读(二)——device plugin 的ListAndWatch过程
  • ​​[硬件电路-320]:模拟电路与数字电路,两者均使用晶体管(如BJT、MOSFET),但模拟电路利用其线性区,数字电路利用其开关特性。 - 指南
  • 源码安装fail2ban
  • 高效 PDF 处理利器:PDF-XChange Editor v10.7.3.401 特性解析与优化版分享
  • 类的继承与继承的覆盖
  • 触摸IC原厂 VKD223EB是一款低电流1通道触控1按键触摸芯片 HBM静电大于5KV
  • AI元人文思想体系:从哲学基础到价值原语博弈的微观机制
  • 条件判断语句
  • EXCEL 行列转换
  • 基于多假设跟踪(MHT)算法的MATLAB实现
  • Linux grep cut tomcat logs