专栏文章

暴力美学,还是精妙构造?

学习·文化课参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@min3tplb
此快照首次捕获于
2025/12/01 20:07
3 个月前
此快照最后确认于
2025/12/01 20:07
3 个月前
查看原文
一道平平无奇的题在面前,但是无聊使我做了整个晚自习。
所谓可可爱爱,没有脑袋。
求证:x>0x>0f(x)=(1x+12)ln(x+1)>1f(x)=(\frac1x+\frac12)\ln(x+1)>1
首先确认很简单的一点,limx0f(x)=1\lim_{x\to0}f(x)=1,不妨扩一下定义域,令 f(0)=1f(0)=1
哎实际上 x<0x<0f(x)>1f(x)>1 也成立,但是这是后话了。于是假设 xx 始终满足 x>0x>0,且 ' 是对 xx 求导。
那么有 f(x)=xln(x+1)x212(x+1)f'(x)=\frac{x-\ln(x+1)}{x^2}-\frac1{2(x+1)}
考虑泰勒展开:ln(x+1)<xx22+x33\ln(x+1)<x-\frac{x^2}2+\frac{x^3}3
考虑取 x=e1x=e-1 处切线:ln(x+1)x+1e\ln(x+1)\le\frac{x+1}e
考虑设 g(C,x)=12ln(x+1)+Cg(C,x)=-\frac12\ln(x+1)+Cg(C,x)=12(x+1)<f(x)g'(C,x)=-\frac1{2(x+1)}<f'(x),则显然 f(x+Δx)>g((1x+1)ln(x+1),x+Δx)f(x+\Delta x)>g((\frac1x+1)\ln(x+1),x+\Delta x),其中 Δx>0\Delta x>0
准备工作完毕。
x12x\le\frac12,将泰勒展开带入 f(x)f'(x),可知 f(x)>x(12(x+1)13)0f'(x)>x(\frac1{2(x+1)}-\frac13)\ge0。于是 f(x)>f(0)=1f(x)>f(0)=1
x2e2x\ge\frac2{e-2},将 x=e1x=e-1 处切线带入 f(x)f'(x),可知 f(x)e1ex12(x+1)1ex2>1ex(e221x)0f'(x)\ge\frac{e-1}{ex}-\frac1{2(x+1)}-\frac1{ex^2}>\frac1{ex}(\frac{e-2}2-\frac1x)\ge0。于是 f(x)>f(2e2)>1f(x)>f(\frac2{e-2})>1
现在无非是要解决中间这段 (12,2e2)(\frac12,\frac2{e-2})
不要带脑子,宁可带计算器!
由刚才 f(x+Δx)>g((1x+1)ln(x+1),x+Δx)f(x+\Delta x)>g((\frac1x+1)\ln(x+1),x+\Delta x) 的结论,又因 g(x)<0g'(x)<0 所以 g(x)g(x) 单调递减,尽量往大了取 x+Δxx+\Delta x 使函数值恰好为 11 便是。
于是有若 x(a,e2((1a+1)ln(a+1)1)1)x\in(a,e^{2((\frac1a+1)\ln(a+1)-1)}-1)f(x)>1f(x)>1
注意到取 aa 分别为 12,713,47,58,1116,1317,67,4647,2522,3123,2314,2512\frac12,\frac7{13},\frac47,\frac58,\frac{11}{16},\frac{13}{17},\frac67,\frac{46}{47},\frac{25}{22},\frac{31}{23},\frac{23}{14},\frac{25}{12} 时可以覆盖住 (12,2e2)(\frac12,\frac2{e-2}),证毕。
然而尚有一个问题:区间实在是太多了。这也没办法,已经是区间最少的方案了。
能不能优化一下呢?如果想要少写几个字的话。
考虑强行搜索出分母之和最小的解:
C
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);}
运行后可知可以取 aa 分别为 12,713,712,711,710,79,78,1,1513,1511,53,199\frac12,\frac7{13},\frac7{12},\frac7{11},\frac7{10},\frac79,\frac78,1,\frac{15}{13},\frac{15}{11},\frac53,\frac{19}9 即可使分母之和最小。不过话说回来这组解答还是分母最大值最小的,也是分母和分子之和最大值最小的。
其他条件可自行修改代码。

评论

0 条评论,欢迎与作者交流。

正在加载评论...