如何证明一个不等式?
求组合数n个不同物体里面选l个出来的组合数,当n非常大的时候,用stirling近似,可以得到如上的不等式
如何证明?
直接用stirling近似公式代入,比较复杂,之后似乎还用到了泰勒展开。
如果能用数学软件帮忙搞定,也请帮忙提供代码,谢谢。
本帖最后由 convolution 于 2024-1-4 17:50 编辑
这是从一篇论文上摘录的,我发现可能这个不等式(2.3)有点夸张问题。我再补充论文紧接着下面的一个不等式(2.4), 这个(2.4)不等式通过验证,应该更合理
所以怀疑(2.3)可能有问题
用如下python程序,验证, (2.4)的不等式更有价值,两者相差不大。
run出来结果是:
(2.3) real=100891344545564193334812497256, appro=148533285492209528259287941159865671342389596554150160391285171318878020272760835447529914289758808878495
443820047263745070190270079252220959787460207837184, <font color="#ff0000"><b>real/appro=6.79250743099e-127</b></font>
(2.4) real=100891344545564193334812497256, appro=101143884241459121791371837440, <b><font color="#ff0000">real/appro=0.997503163955</font></b>l = n/2的时候(n choose l)值最大
#!/bin/env python
# coding=utf-8
from math import *
n= 100
real = factorial(n)/(factorial(n//2)**2)
appro = n**n * exp(-n + 1/(12.0*n))/sqrt(2*pi*n)
print '(2.3) real={}, appro={}, real/appro={}'.format(real, int(appro), real/appro)
def H(x):
assert 0<x<1, 'x:{} should in (0,1)'.format(x)
return -x*log(x) - (1-x)*log(1-x)
appro = exp(n*H(0.5))/sqrt(2*pi*n*0.5*0.5)
print '(2.4) real={}, appro={}, real/appro={}'.format(real, int(appro), real/appro)
页:
[1]