一种较简单的方法
所在版块:求学狮城 发贴时间:2003-06-12 11:11  评分:

用户信息
复制本帖HTML代码
高亮: 今天贴 X 昨天贴 X 前天贴 X 
推理:

2(1/n) = 2 (1/k * k/n) = (2(1/k))(k/n)

约等于
1 + (2(1/k)-1) * k/n (<= (1+x)n 次方 ~= 1+ n*x ) (1)
( k 越接近 n 误差 越小 & k <= n 为佳 )

这样
原式 = f(n) = n*(2(1/n)-1) ~= n * (2(1/k)-1) * k/n
= k * (2(1/k)-1) = f(k)

先求得一组数字的值, 如 [2, 5, 10, 100, 1000, ...]

当 n < 5 时, f(n) ~= f(2)
当 n < 10 时 f(n) ~= f(5)
.....

如要更精确, 前面(1) 式可用下式代替
1 + (2(1/k)-1) * k/n + (2(1/k)-1)2 * k/n * ((k/n)-1) / 2

这样
f(n) = f(k) + f(k) * (f(k)/2n - f(k)/2k)
= f(k) + f(k) * f(k) * (1/2n - 1/2k)

令 k = n-1
f(n) = f(n-1) - f(n-1) * f(n-1) / (n * (n-1))

同样
先求得一组数字的值, 如 [2, 5, 10, 100, 1000, ...]

当 n < 5 时, f(2) = f(2)
f(n) = f(n-1) - f(n-1) * f(n-1) / (n * (n-1))
或者
f(n) = f(2) + f(2) * f(2) * (1/2n - 1/4)
当 n < 10 时 f(5) = f(5)
f(n) = f(n-1) - f(n-1) * f(n-1) / (n * (n-1))
或者 f(n) = f(5) + f(5) * f(5) * (1/2n - 1/10)
.....

可用程序递归运算。
n 越小误差越大, 可多取几组基值。
.
欢迎来到华新中文网,踊跃发帖是支持我们的最好方法!

Put your OWN COOL signature here!
 相关帖子 我要回复↙ ↗回到正文
请问n*(2(1/n)次方-1)可以近似成啥? anabelle   (21 bytes , 337reads )
请问一下这个计算的近似, 偶打了公式, 谢谢! anabelle   (82 bytes , 215reads )
公式 anabelle   (81 bytes , 210reads )
不是求极限, 比如说n=5,6 or 7 anabelle   (56 bytes , 181reads )
一种较简单的方法 风中的树叶   (1118 bytes , 266reads )
0 GOODLUCK!   (0 bytes , 198reads )