二分法和三分法的用处和区别
“啊 ,三分你比二分多一分”
最近在做题的时候发现原来还有三分法这个东东,由于本人水平有限知道应该二分可以解决,但是由于最优解的函数并不单调我不知道怎么继续分了。看了题解才发现原来三分这么好用,看来不只是简单的“比二分多一分啊”
有一篇博文写的很好三分法与二分法的区别和三分法总结
先说说二分法:
二分法搜索法就是不断缩小解可能存在的范围,从而求得问题最优解的方法。
就是把[L,R]区间为两个区间,[L,mid]和(mid,R]。看中间值mid,是否为合法解,然后不断缩小区间直到满足范围。
用法:
1.从有序数组中查找某个值。
2.求最优值(前提是可以对目标函数进行试探,并且这个函数必须是单调的)
那么问题来了,并不是每次目标函数都是单调的,比如:(图有点丑 )
我们要求的最优值在位置x,我们怎么进一步确定[L,R]区间呢?这里就要用到三分法了!
当我们求的目标函数不是单调函数(区间内递增/递减)就要使用三分法了,或者你重新构造一个单调函数使用二分也是可以的。
三分法:
1.将区间分为如下:
m1=L+(R-L)/3;
m2=R-(R-L)/3:
2.缩短区间
以求最大值为例,比较目标函数值f(m1)和f(m2)谁更靠近极值f(x),如果f(m1)更靠近极值f(m1)>f(m2),说明极值在[l,m2]之间,即右区间改为m2,否则左区间改为m1。
二分法和三分法的用处和区别相关推荐
- 算法设计 - 二分法和三分法,洛谷P3382
二分法 二分查找:找目标值位置 二分法是一种适用于特殊场景下的分治算法. 这里的特殊场景指的是,二分法需要作用在一个具有单调性的区间内. 比如,我们熟知的二分查找,就是一种二分法的具体实现,二分查找必 ...
- 二分法和分治法概念区别--记录
1.二分法和分治法的概念区别: 二分搜索每次都要舍弃一半,从留下的一半中寻找目标:而分治法把一个大问题分成两个或多个小问题,递归地求这些小问题的解,最后再把它们小心谨慎的合并起来,并且要仔细考虑合并时 ...
- 题目:任意给定一个浮点数,计算这个浮点数的立方根。(基于二分法和牛顿迭代法)(基于Java实现)
题目:任意给定一个浮点数,计算这个浮点数的立方根.(基于二分法和牛顿迭代法)(基于Java实现) 首先,来分析一下这道题,其实在leetcode上做了求解根号3的题之后,对于这种求解立方根的题,基本上 ...
- python 二分法实现pow_Python实现二分法和黄金分割法
运筹学课上,首先介绍了非线性规划算法中的无约束规划算法.二分法和黄金分割法是属于无约束规划算法的一维搜索法中的代表. 二分法:$$x_{1}^{(k+1)}=\frac{1}{2}(x_{R}^{(k ...
- (小白)函数一: 声明函数的方法—语句定义法和表达式定义法的区别
一.函数的定义: 在说明什么是函数前先举一个小例子: 大家都知道印刷术是我国的四大发明(科普一下:中国四大发明:造纸术.印刷术.火药.指南针)之一,之所以有印刷术,是因为重复的抄写既浪费时间,效率又很 ...
- HttpHandler与HttpModule的用处与区别
HttpHandler与HttpModule的用处与区别 问题1:什么是HttpHandler? 问题2:什么是HttpModule? 问题3:什么时候应该使用HttpHandler什么时候使用Htt ...
- hibernate中get方法和load方法的根本区别
hibernate中get方法和load方法的根本区别 如果你使用load方法,hibernate认为该id对应的对象(数据库记录)在数据库中是一定存在的,所以它可以放心的使用,它可以放心的使用代理来 ...
- KNN算法和Kernel KNN算法的区别
KNN算法和Kernel KNN算法的区别 KNN算法 KNN(K-Nearest Neighbor,简称KNN)算法,是一种常用的监督学习方法,其工作机制为:给定测试样本,基于某种距离度量找出训练集 ...
- 工控服务器什么作用,服务器与工控机的用处和区别在哪?
服务器与工控机的用处和区别在哪? 2018年09月17日 10:12:15来源:立尔讯科技作者:立尔讯科技关键词:工控机,服务器 服务器与工控机有什么差异?在工厂里运用,是选服务器好,仍是选用工控机好 ...
最新文章
- nginx同域名代理tomcat不同目录下的文件
- PHP中redis的使用
- android 8.1没声音,Android 8.1重大改变!耳机孔不见了
- strtus2改成springboot_ssh框架使用springBoot升级迁移替换Struts2
- mysql与tomcat_mysql数据库与tomcat服务器的一些细节问题
- 扫一扫闪退的可能性之一[wex5开发]
- 《Linux 设备驱动开发详解(第2版)》——1.4 Linux设备驱动
- NHibernate官方文档中文版——批量插入(Batch inserts)
- 2021年40个最佳免费WordPress主题
- 如何在html中播放.flv格式的视频【vue和普通html皆可用】
- 计算机网络知识自问自答,2020计算机网络学习心得体会.doc
- 3D游戏建模行业门槛高吗
- KindEditor实现WORD粘贴图片自动上传
- vue获取焦点、失去焦点
- DOCK6.9学习(VII)
- Day114.尚医通:用户认证、阿里云OSS、就诊人管理
- 西安工程大学计算机学院薛涛,计算机科学学院召开2021年度国家自然科学基金申报动员会...
- siwave 2020R2 软件铜箔粗糙度重大升级更新!
- CentOS Hive安装详细步骤
- [解决方案] java.lang.OutOfMemoryError异常解决方法 [复制链接]