求使函数f(x)=C(100,x)*(2^x)取最大值的整数x,导数法失效该如何着手?
解决离散函数极值:用相邻项比值找最大值
嘿,我完全懂你的困惑——组合数C(100,x)只在整数x上有定义,根本没法像连续函数那样求导!不过别慌,对于这种离散序列,我们可以用相邻项比值法来判断它的增减趋势,找到转折点就是最大值的位置了。
具体步骤
我们的目标函数是f(x) = C(100, x)·2^x,核心思路是通过比较f(x+1)和f(x)的大小,确定序列什么时候递增、什么时候递减:
- 写出相邻项的比值表达式
f(x+1)/f(x) = [C(100, x+1)·2^(x+1)] / [C(100, x)·2^x]
- 化简组合数部分
回忆组合数的递推公式:C(n, k+1) = C(n, k)·(n - k)/(k+1),代入后可得:
C(100, x+1)/C(100, x) = (100 - x)/(x + 1)
结合2的幂次化简,整个比值最终变为:
f(x+1)/f(x) = [(100 - x)/(x + 1)] · 2
- 通过比值判断增减性
- 当
f(x+1)/f(x) > 1时,f(x+1) > f(x),序列处于递增阶段; - 当
f(x+1)/f(x) = 1时,f(x+1) = f(x),两者相等; - 当
f(x+1)/f(x) < 1时,f(x+1) < f(x),序列开始递减。
- 解不等式找转折点
令[(100 - x)/(x + 1)] · 2 > 1,解这个不等式:
2(100 - x) > x + 1 200 - 2x > x + 1 199 > 3x x < 199/3 ≈ 66.333...
这意味着:
- 当
x ≤ 66时,序列持续递增; - 当
x ≥ 67时,序列开始递减。
- 验证边界值
计算x=66和x=67的函数值关系:f(67) = f(66) × (68/67),显然f(67) > f(66);
而f(68)/f(67) = (33/68)×2 = 66/68 < 1,即f(68) < f(67)。
结论
函数f(x)=C(100,x)·2^x在x=67时取得最大值。
内容的提问来源于stack exchange,提问作者Shivam Kumar
相关产品推荐
相关产品推荐

