当前位置:   article > 正文

(五)二分法_怎么估计二分次数

怎么估计二分次数

二分法应用场景

  1. 存在一个有序的数列
  2. 题目能建模为在一个有序数列上查找一个合适数值

特点速度快,效率很高,二分法的复杂度O(logn)

n次二分后,区间缩小到(b-a)/2^n,给定a,b和精度要求e,可以计算出二分次数n

(b-a)/2^n<e。

如函数在区间[1,100000]内单调,要求根的精度10^-8,那么由100000/2^n<10^-8可知二分次数

n>log2(10^13),44次。

整数二分

左闭右开循不变,

中位数找后继,

右中位数找前驱,

欲寻后继收右边,

移左莫忘再加一。

例:在单调递增序列种查找x或x的后继,在单调递增序列种查找x或x的前驱

 

跳石头

看完贪心后回来补

青蛙过河

看完贪心回来补 

实数二分

两种写法:while,for

 1e-7表示10^-7,也可以用for循环来写,直接100次二分,一定会分到一个极小区间,但这个100不能滥用,达到精度即可,否则会超时。

练习:

一元三次方程求解

 

 直接在区间上做二分无法找到3个解,题目给了个很好的条件,根与根之差绝对值大于等于1,

在每个[i,i+1]内做二分查找,共有200个长度为1的区间

 

 题目要求精确到小数点后2位,(这里做10次二分,即1/1024的精度,足以达到题目要求确保不会出错)。

y(mid)*y(right)>=0表示mid和right都在target的右侧,right=mid,y(mid)*y(right)>=0则相反

 

解立方根

 

分巧克力 

 暴力法

二分法

用二分法来做,相当于是整数二分里求x或x的前驱,

需要注意的是,初始right必须是理论最长的边 ,不一定要比所有巧克力的宽高要小

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/624517
推荐阅读
相关标签
  

闽ICP备14008679号