三分

//说明:此篇文章不是出自本人(virtualtan),不过作者不知,无法注明,侵权联系删除
//我之前打的貌似有点问题…没事理解思路就行
 三分:
    如果说二分针对的是单调函数,那么三分针对的是双调函数。也就是下面这样的函数。(如果是y = x*x)
    三分是求这样先增后减或者是先减后增的函数的极值的。
    具体步骤就是:对于区间 (L,R),先求出 1/3 处的 M1 和 2/3 处的 M2,然后比较 M1 和 M2 处的大小,如果 M1 处的值大于 M2 处的值,那么极值一定在(M1,R)这个区间范围内,否则一定在 (L,M2)这个范围内。
    因为如果 M1处大于M2处的话,M1不可能在极值点的右边。。。所以。。。就是这样了。。。每次变成原来区间的2/3大小。。。

二分三分的用处很广很广,比如对一个符合的序列,或者是在计算几何中用来求一些不好算的值等等。。。
    比如求点到椭圆的最近距离的题目,就可以通过三分一次次的逼近。

在这里插入图片描述
三分模板:

double l = 0, r = 1e3;
	while(r - l > 1e-11)
	{
	double m1 = l + (r - l) / 3;
	double m2 = r - (r - l) / 3;
	if(f(m1) > f(m2)) l = m1;
	else r = m2;
	}


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值