标题: 一道旧题目(数学类)
性别:女-离线 天宫公主
(司徒家的颖颖)

虞国公主

Rank: 12Rank: 12Rank: 12
组别 限制发言用户
级别 大将军
好贴 6
功绩 517
帖子 11552
编号 1037
注册 2004-10-25
来自 天津
家族 司徒实业


发表于 2006-10-25 11:00 资料 主页 短消息 看全部作者 QQ
设 D 为 3000! 的位数,[.] 为 Gauss step 函数([x] = 不大于 x 的最小整数),则

D = [lg 3000!] = [(ln 3000!)/(ln 10)] = [(ln 1 + ln 2 + ... + ln 3000)/(ln 10)]

注意:(1/2)ln 1 + ln 2 + ... + ln 2999 + (1/2) ln 3000 :=: int_1^3000 ln x dx = x ln x - x |_1^3000 = 3000 (ln 3000 - 1) - 1. (Trapeziod approximation).

而且,这个积分估算的误差不大于 ((b-a)^2/12n^2)|f"(x_0)|, 其中 x_0 是 |f"(x_0)| 在有关取值范围的最大值。因此,我们可以通过这个公式去计算误差 < sum_{n=1}^2999 |(ln (n) + ln (n+1))/2 - int_n^{n+1} ln x dx| = sum_n O(1/n^2) 应该比较小(按理说应该搞成误差小于1,不过比较繁琐,需要分很多段考虑。例如 [1,2] 可能硬算误差比什么都好,因为 |f"(x_0)| 那一项在[1,2]上起不了什么作用。真的不行了,前面几项用 Simpson rule 加,后面的再用 Trapeziod rule,然后减去它们之间的差即可。Simpson's rule 的误差是 (b-a)^5/180n^4 |f^(4) (x_0) |. 有那个 1/180 在,对于 [1, x_0], x_0 比较小的时候非常有效)。

故而,D = [lg 3000!] :=: ((int_1^3000 ln x dx)+(1/2) ln 3000)/ln(10).

P.S. 楼上学数学的么?

[ 本帖最后由 天宫公主 于 2006-10-25 11:15 编辑 ]


顶部

正在浏览此帖的会员 - 共 3 人在线




当前时区 GMT+8, 现在时间是 2024-11-16 14:56
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.009403 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP