可以把等式两边作为函数画图像求解,函数图像交点的横坐标就是对应的解,这个题可以代数进去测试,大于0的解有2和4,需要注意指数函数的增长速度快于幂函数,此外还有一个小于0的解,不能直接给出,但通过代数测试和函数图像交点可以大概给出其范围。
二分法,又称分半法,是一种方程式根的近似值求法。对于区间[a,b]上连续不断且f(a)
·f(b)0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分
二分法的方法和步骤:
1,如果要求已知函数
f(x)
=
的根
(x
的解),那么
2,,先要找出一个区间
[a,
b],使得f(a)与f(b)异号。
根据介值定理,这个区间内一定包含着方程式的根。
3,求该区间的中点m=(a+b)/2,并找出
f(m)
的值。
4,若
f(m)
与
f(a)
正负号相同,则取
[m,
b]
为新的区间,
否则取
[a,
m]。
5,重复第3步和第4步,直到得到理想的精确度为止。
二分法的宗旨,在于每次搜索的时候舍弃了解不在的那一半,最后将区间缩小并逼近解。不仅是全集有序可以使用,分段有序也可以使用。
二分法算法框架
我们知道两个数的中位数,可以使用Δx/2 + x,也可以(x1+x2)/2;但是出于极端的考虑,x1+x2有可能出现Integer或者long越位,所以推荐使用Δx/2 + x。
给定一个有序数组的任意次右移结果,找出某个元素的位置,不存在返回-1。
(i.e., [0,1,2,4,5,6,7] might become [4,5,6,7,0,1,2])。
在确定分段有序的时候,如果target在此范围内,就缩小到此范围,否则就使用另外一半区间。
这是上一题有duplicate的升级。
在一个旋转数组中找出最小值。
2,2,2,0,1为例
(1)找到中间位置,中间位置[2]没有[1]大,则start区间前进到mid,此时start=2,end=4
(2)找到中间位置,中间位置[0]比[1]要小,则end缩短至mid,此时start=2,end=3
(3)结束,比较2,3位置取最小值
如果mid位置等于end位置,则end直接往前移动一个位置。