编写一个程序来打印二项式展开系列

2023年 9月 18日 90.7k 0

编写一个程序来打印二项式展开系列

二项展开式是一个数学公式,用于展开 (a+b)^n 形式的表达式,其中 n 是正整数,a 和 b 可以是任何实数或复数。展开式给出了展开式中各项的系数。

一个二项式展开可以表示为

$$mathrm{(a+b)^n= ^nC_0a^nb^0+ ^nC_1a^{n-1}b^1 + ^nCa^{n-2}b^2+... + ^nC_ra^{n-r}b^r+...+ ^nC_na^0b^n}$$

其中 $mathrm{^nC_r}$ 是二项式系数,由下式给出

$mathrm{^nC_r=frac{n!}{r!times(n−r)!}}$,其中n!表示n的阶乘

展开式可用于使用上述公式计算所有二项式项并将其代入展开式方程。

问题陈述

给定三个整数 a、b 和 n。求 (a+b)^n 的二项展开式的项。

示例示例1

输入 -

a = 1, b = 2, n = 3

登录后复制

输出 -

[1, 6, 12, 8]

登录后复制

Explanation

的中文翻译为:

解释

二项式展开式(1+2)^3如下所示

$mathrm{(1+2)^3 = C(3,0)a^3b^0 + C(3,1)a^2b^1 + C(3,2)a^1b^2 + C(3,3)a^0b^3}$

= 1*1*1 + 3*1*2 + 3*1*4 + 1*1*8

因此,[1, 6, 12, 8] 是二项式展开的项。

示例例子2

输入 -

a = 7, b = 2, n = 11

登录后复制

输出 -

[2401, 2744, 1176, 224, 16]

登录后复制

方法一:递归二项式展开

使用二项式展开公式,

$$mathrm{(a+b)^n= ^nC_0a^nb^0+ ^nC_1a^{n-1}b^1 + ^nCa^{n-2}b^2+... + ^nC_ra^{n-r}b^r+...+ ^nC_na^0b^n}$$

我们可以通过递归计算二项式系数来找到每一项的值。

伪代码

procedure binomialCoeff (n, r)
if r == 0 or r == n
ans = 1
else
ans = binomialCoeff (n - 1, r - 1) + binomialCoeff (n - 1, r)
end procedure

procedure binomialTerms (a, b, n)
Initialize vector: arr
for r = 0 to n
coeff = binomialCoeff(n, r)
term = coeff + a^n-r + b^r
add the term to arr
ans = arr
end procedure

登录后复制

示例:C++实现

在下面的程序中,binomialCoeff()函数递归地计算第r个二项式系数的值,而binomialTerms()函数计算展开式中二项式项的值。

#include
using namespace std;
// Function for calculating binomial coefficients
int binomialCoeff(int n, int r){
if (r == 0 || r == n) {
return 1;
} else {
return binomialCoeff(n - 1, r - 1) + binomialCoeff(n - 1, r);
}
}

// Function for calculating the binomial terms
vector binomialTerms(int a, int b, int n){
vector ans;
for (int r = 0; r

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论