王守恩 发表于 2017-2-9 14:15:16

e小数部分的渐近分数

e小数部分的渐近分数

只是呼吸 发表于 2017-2-10 09:59:56

看来是正确的

管理员 liangbc 能计算100万位e.参看 http://bbs.emath.ac.cn/thread-359-1-1.html

gxqcn 发表于 2017-2-10 10:29:00

可通过连分数得到渐近分数,已有成熟的理论。

\(e=\)
其不完全商的通式为:\(a_0=2, a_{3i}=a_{3i-2}=1, a_{3i-1}=2i (i=1,2,\cdots )\)

winxos 发表于 2017-2-10 11:46:46

楼主弄清连分数得到渐进分数的方法后,
下面是e的连分数前一万位,
http://oeis.org/A003417/b003417.txt
可以供楼主验算使用。

winxos 发表于 2017-2-10 11:51:04

才发现e的连分数是有规律的。:L

王守恩 发表于 2017-2-12 20:03:17

gxqcn 发表于 2017-2-10 10:29
可通过连分数得到渐近分数,已有成熟的理论。

\(e=\)



可通过连分数得到渐近分数,已有成熟的理论。
我的这条渐近分数与众不同,逼近e的速度极快,只要稍作调整,速度会更快!

zyqjw 发表于 2017-5-20 04:12:24

本帖最后由 zyqjw 于 2017-5-20 04:45 编辑

经验证该算法正确。而且还得出一个结论:小数有效精度位数=分子的位数+分母的位数。
比我原先的算法速度提高40%(接近快1倍),应该还有优化的空间。
                int MaxLenth = Edit1->Text.ToIntDef(10000) + 1;//精度

                TLargeFloat a1(12194787470451LL), a2(290170412069LL),
                        b1(16977719590391LL), b2(403978495031LL), a3, b3;
                __int64 k = 46;

                try {
                        b1.SetDigitsLength(14);
                        int len = 0;
                        while (!UserStop && b1.m_Exponent.AsInt() < MaxLenth / 2) {
                                a3 = a1;
                                b3 = b1;

                                len = b1.GetDigitsLength();
                                if (len < MaxLenth) {
                                        a1.SetDigitsLength(len + 10);
                                        b1.SetDigitsLength(len + 10);
                                }
                                a1 *= k;
                                b1 *= k;
                                a1 += a2;
                                b1 += b2;

                                k += 4;
                                a2 = a3;
                                b2 = b3;
                        }
                        a1 /= b1;
                        a1 += 2;
                        a1.SetDigitsLength(MaxLenth);
                      Memo1->Text = a1.AsString();

BTCAL计算e的30万位,原先需5分37,现在3:20
原算法为:
e=1+1+1/2!+1/3!+1/4!+...+1/n!
=1+3/2!+5/4!+7/6!+9/8!...+(2n+1)/(2n)!
=5/2+26/5!+65/8!+……+(n^2+1)/n!
=...迭代直至最后一项的精度满足要求。

王守恩 发表于 2017-5-20 05:11:25

zyqjw 发表于 2017-5-20 04:12
经验证该算法正确。而且还得出一个结论:小数有效精度位数=分子的位数+分母的位数。
比我原先的算法速度提 ...

可通过连分数得到渐近分数,已有成熟的理论。
我的这条渐近分数与众不同,逼近e的速度极快,只要稍作调整,速度会更快!

王守恩 发表于 2017-5-22 11:36:14

王守恩 发表于 2017-5-20 05:11
可通过连分数得到渐近分数,已有成熟的理论。
我的这条渐近分数与众不同,逼近e的速度极快,只要稍作调 ...

优美数字
页: [1]
查看完整版本: e小数部分的渐近分数