You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求使函数f(x)=C(100,x)*(2^x)取最大值的整数x,导数法失效该如何着手?

解决离散函数极值:用相邻项比值找最大值

嘿,我完全懂你的困惑——组合数C(100,x)只在整数x上有定义,根本没法像连续函数那样求导!不过别慌,对于这种离散序列,我们可以用相邻项比值法来判断它的增减趋势,找到转折点就是最大值的位置了。

具体步骤

我们的目标函数是f(x) = C(100, x)·2^x,核心思路是通过比较f(x+1)和f(x)的大小,确定序列什么时候递增、什么时候递减:

  1. 写出相邻项的比值表达式
f(x+1)/f(x) = [C(100, x+1)·2^(x+1)] / [C(100, x)·2^x]
  1. 化简组合数部分
    回忆组合数的递推公式: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
  1. 通过比值判断增减性
  • 当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),序列开始递减。
  1. 解不等式找转折点
    令[(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时,序列开始递减。
  1. 验证边界值
    计算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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:11:35