首页 > 编程知识 正文

三大数据结构,数据挖掘的分类算法

时间:2023-05-03 18:36:08 阅读:138222 作者:693

1 .三分钟解决的问题说白了,三分法是最有价值的解决问题的方法。 所以那个可以解决以下问题

(两种说法等价) :

在定义域中,函数的导数是单调的。

函数是单峰的。

原理很简单,——取出求出的区间[ l,r ]中的两个值进行比较,一般使用中间值(mid=(LR )/2 )和中间值与右侧)的中间值) mid mid=(midr )/2 )进行比较。

若mid更大(小)则抛弃(midmid,r ] 这个区间

若midmid更大(小)则抛弃 [ l,mid)这个区间。

然后在剩下的区间找就可以了。

下图:

道理我很明白。 针对上图的情况直接选择[ L,midmid ]区间继续计算即可。

表示例题(HDU 2899 )

问题描述

Now,here is a fuction:

f(x )=6x78x67x35x2yx ) 0lt;=x lt;=100 ) f(x )=6*x^78*x^67*x^35*x^2-y*x ) 0lt;=x lt;=100 ) f(x )=6x78x67x3x2yx(0=x=100 ) ) ) ) ) ) ) ) ) ) ) ) )。

canyoufindtheminimumvaluewhenxisbetween0and 100。

输入

thefirstlineoftheinputcontainsanintegert (1=t=100 ) whichmeansthenumberoftestcases.thentlinesfollow,eachlinehasonlyonsonlyon

Output

justtheminimumvalue (accurate upto4decimal places ),when x is between 0 and 100。

# include cstdio # include cmath # includeiostreamusingnamespacestd; 双y; doubleFX(doublex ) return6*pow ) x,7.0 )8 * pow(x ) x,6.0 )7*pow ) x,3.0 ) pow ) x,2.0 )- y * x; }doubledfx(doublex ) return42*pow ) x,6 ) 48 * pow(x ) x,5 ) 21 * pow(x ) x,2 ) 10 * x - y; }doubleSanfen(doublel,double r ) doublemid=(Lr )/2; 双精度mid mid=(mid r )/2; if(r-L1e-6 )返回l; if(FX(mid ) FX (midmid ) ) returnSanfen,mid mid ); }else{returnSanfen(mid,r ); }}int main () {int T; scanf('%d ',t ); wile(t----) {cin y; (if ) dfx )0)//当时写的多余操作)勤奋的摩托车函数直接返回f(0) ) printf('%.4f(n ),FX ) ); }elseif(dfx(100 )0)/)恒减的函数直接返回f )0) )、FX ) 100 ) ); }else{printf('%.4f(n ),FX ) San fen (0,100 ) ); } }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。