暴力美学,还是精妙构造?
一道平平无奇的题在面前,但是无聊使我做了整个晚自习。
所谓可可爱爱,没有脑袋。
求证:
x>0 时f(x)=(\frac1x+\frac12)\ln(x+1)>1 。
首先确认很简单的一点,
哎实际上
那么有
考虑泰勒展开:
考虑取
考虑设
准备工作完毕。
若
若
现在无非是要解决中间这段
不要带脑子,宁可带计算器!
由刚才
于是有若
注意到取
然而尚有一个问题:区间实在是太多了。这也没办法,已经是区间最少的方案了。
能不能优化一下呢?如果想要少写几个字的话。
考虑强行搜索出分母之和最小的解:
double g(double x){return exp(2*((1/x+1)*log(x+1)-1))-1;}
m=114514,ans[100001][2];
void dfs(n,w,x,s,a,b,c,d)double w,x;
{
if(n==0)
{
if(s<m)
{
m=s;
for(int i=11;i;i--)
printf("%d/%d ",ans[i][0],ans[i][1]);
puts("");
}
return;
}
if(s+b+d>=m)
return;
if(x>1.*(a+c)/(b+d))
{
if(1.*(a+c)/(b+d)>w)
{
double y=1.*(a+c)/(b+d);
for(int i=0;i<n;i++)
y=g(y);
if(y>2/(exp(1)-2))
ans[n][0]=a+c,ans[n][1]=b+d,dfs(n-1,1.*(a+c)/(b+d),g(1.*(a+c)/(b+d)),s+b+d,0,1,1,0);
}
dfs(n,w,x,s,a+c,b+d,c,d);
}
else
dfs(n,w,x,s,a,b,a+c,b+d);
return;
}
main(){dfs(11,.5,g(.5),0,0,1,1,0);}
运行后可知可以取
其他条件可自行修改代码。