- 注册时间
- 2016-4-28
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 57
- 在线时间
- 小时
|
楼主 |
发表于 2024-1-4 17:26:35
|
显示全部楼层
本帖最后由 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)
复制代码
|
|