牛顿二项式定理学习(广义二项式定理)

牛顿二项式定理

二项式定理

对于一个这样的式子: ( x + y ) n (x+y)^n (x+y)n

展开式如下:

( x + y ) n = ∑ i = 0 n ( i n ) x n − i y i (x+y)^n=\sum_{i=0}^{n}{(^n_i)x^{n-i}y^{i}} (x+y)n=i=0n(in)xniyi

其中 ( i n ) = n ( n − 1 ) . . . ( n − i + 1 ) i ! (^n_i)=\frac{n(n-1)...(n-i+1)}{i!} (in)=i!n(n1)...(ni+1)

牛顿二项式定理

牛顿二项式定理是对二项式定理的扩展,通过牛顿二项式定理可以得到 ( x + y ) α (x+y)^\alpha (x+y)α

的展开式,其中 α \alpha α是任意实数。

α \alpha α为任意实数, x , y x,y x,y满足 0 ≤ ∣ x ∣ < ∣ y ∣ 0 \leq |x| < |y| 0x<y,有

( x + y ) α = ∑ k = 0 ∞ ( k α ) x k y α − k (x+y)^{\alpha}=\sum_{k=0}^{\infty}{(^\alpha_k)x^{k}y^{\alpha-k}} (x+y)α=k=0(kα)xkyαk

z = x / y , ∣ z ∣ < 1 z=x/y,|z| < 1 z=x/y,z<1,那么 ( x + y ) α = y α ( 1 + z ) α (x+y)^{\alpha}=y^{\alpha}(1+z)^{\alpha} (x+y)α=yα(1+z)α,那么等价于求

( 1 + z ) α (1+z)^{\alpha} (1+z)α即可。

( 1 + z ) α = ∑ k = 0 ∞ ( k α ) z k (1+z)^{\alpha}=\sum_{k=0}^{\infty}{(^{\alpha}_k)z^{k}} (1+z)α=k=0(kα)zk

n n n为正整数,我们用 − n -n n代替 α \alpha α,有

( k a ) = ( k − n ) = − n ( − n − 1 ) . . . ( − n − k + 1 ) k ! = ( − 1 ) k ( k n + k − 1 ) (^{a}_{k})=(^{-n}_{k})=\frac{-n(-n-1)...(-n-k+1)}{k!}=(-1)^k(^{n+k-1}_{k}) (ka)=(kn)=k!n(n1)...(nk+1)=(1)k(kn+k1)

因此,对于 ∣ z ∣ < 1 |z|<1 z<1有:

( 1 + z ) − n = 1 ( 1 + z ) n = ∑ k = 0 ∞ ( − 1 ) k ( k n + k − 1 ) z k (1+z)^{-n}=\frac{1}{(1+z)^n}=\sum_{k=0}^{\infty}{(-1)^k(^{n+k-1}_k)z^{k}} (1+z)n=(1+z)n1=k=0(1)k(kn+k1)zk

− z -z z代替 z z z得:
( 1 − z ) − n = 1 ( 1 − z ) n = ∑ k = 0 ∞ ( k n + k − 1 ) z k (1-z)^{-n}=\frac{1}{(1-z)^n}=\sum_{k=0}^{\infty}{(^{n+k-1}_k)z^{k}} (1z)n=(1z)n1=k=0(kn+k1)zk

n = 1 n=1 n=1得:

( 1 + z ) − 1 = 1 ( 1 + z ) = ∑ k = 0 ∞ ( − 1 ) k z k (1+z)^{-1}=\frac{1}{(1+z)}=\sum_{k=0}^{\infty}{(-1)^kz^{k}} (1+z)1=(1+z)1=k=0(1)kzk

( 1 − z ) − 1 = 1 ( 1 − z ) = ∑ k = 0 ∞ z k (1-z)^{-1}=\frac{1}{(1-z)}=\sum_{k=0}^{\infty}{z^{k}} (1z)1=(1z)1=k=0zk

利用这个式子我们就可以求任意精度的开根操作了。

例如求 20 \sqrt{20} 20

20 = 4 + 16 = ( 4 + 16 ) 1 2 = 4 ( 1 + 0.25 ) 1 2 \sqrt{20}=\sqrt{4+16}=(4+16)^{\frac{1}{2}}=4(1+0.25)^{\frac{1}{2}} 20 =4+16 =(4+16)21=4(1+0.25)21

然后展开即可。

20 \sqrt{20} 20 的程序


/*******************************
Author:galaxy yr
LANG:C++
Created Time:2019年10月04日 星期五 16时15分42秒
*******************************/
#include<iostream>

const int maxn=3005;
long double x,c[maxn][maxn];

long double C(double a,double k)
{
    long double res=1;
    for(double i=a;i>=a-k+1;i--) res*=i;
    for(double i=1;i<=k;i++)
        res/=i;
    return res;
}

long double solve()
{
    long double x=1.25,a=0.5,z=x-1;
    if(z<0)z=-z;
    long double s=1,ans=0;
    for(int k=0;k<=170;k++)
    {
        ans+=C(a,k)*s;
        s*=z;
    }
    return 4*ans;
}

int main()
{
    std::cout<<solve()<<std::endl;
    return 0;
}

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值