C 语言输出杨辉三角。

C 语言输出杨辉三角。,第1张

工具/材料

gcc+vim(linux)或visual studio(windows)

01

使用vim创建一个文件yanghui.c,并打开它进行编辑。

02

首先输入预处理指令 #include <stdio.h>,用于调用输出函数printf。

03

编译一个函数void yanghui(int n)。其中,n表示二项式的次数。

04

首先,对二项式的幂次进行检查,若小于0,说明输入的次数是不合法的,直接结束打印并给出提示。

05

然后定义一个(n+1)*(n+1)的二维数组并初始化所有值为0。

06

然后根据杨辉三角的规律给数组赋值:

每一行的第一个与最后一个数都是1;

其他的数等于该数的上面一个数与左上角的数之和

07

对杨辉三角进行输出,不相关的数组数据不输出,并注意换行。

08

在main函数中对 void yanghui(int n)进行测试,选用参数为3, 7, 10。

09

保存文档并进行编译输出的结果如下:

由此可以验证我们的程序是正确的。

杨辉三角的规律总结是:

1、每个数等于它上边两数之和。

2、每排数字上下对称性,由1逐渐慢慢增大。

3、第n行的数字有n项。

4、第n行的m个数可表明为C(n-1,m-1),即是从n-1个不一样原素中取m-1个因素的组合数。

5、第n行的第m个数和第n-m 1个数相同,为组合数特性之一。

6、每个数字等于上一行的左右两个个数字之和。可以用此特性写下全部杨辉三角。即第n 1行的第i个数等于第n行的第i-1个数和第i个数之和,这也是组合数的特性之一。即C(n 1,i)=C(n,i) C(n,i-1)。

7、(ab)n地展开式中的各类指数先后相匹配杨辉三角的第(n 1)行中的每一项。

8、将第2n 1行第1个数,跟第2n 2行第3个数、第2n 3行第5个数连接成一线,这种数的和是第4n 1个斐波那契数;将第2n行第2个数(n1),跟第2n-1行第4个数、第2n-2行第6个数,这些数之和是第4n-2个斐波那契数。

9、将第n行的各标值,各自乘于10的行数m-1三次方,随后把这种标值求和的和等于11得n-1三次方。

杨辉三角代码实现的递推公式是:

在很多题目中,我们常常需要用打表的形式先处理出杨辉三角矩阵,然后再以此为基础进行程序求解。那么我们打表的时候如果手存表格的话,不仅浪费考试时间,而且保证不了空间范围和正确性,这个时候需要我们使用递推的手段用程序处理出表格。

根据杨辉三角的性质,我们推出以下的递推公式:C[i][j]=C[i−1][j]+C[i−1][j−1]。

杨辉三角前置条件二项式系数二项式系数,定义为(1+x)n(1+x)n展开之后xx的系数。

通常来讲,二项式系数代表的是从nn件物品中,无序地选取kk件的方法总数,如果你读过我全排列的博客链接,那么你会发现,这就是我们定义的“组合数”。

证明也比较简单:我们假设上述的n=4,k=2n=4,k=2,通过组合数公式可以得出组合数为6。

假如我们把(1+x)4(1+x)4展开并标记每一个xx,就会得到:(1+x1)(1+x2)(1+x3)(1+x4)(1+x1)(1+x2)(1+x3)(1+x4)。

上式等于:(1+x1)⋯(1+x4)=⋯+x1x2+x1x3+x1x4+x2x3+x2x4+x3x4+⋯(1+x1)⋯(1+x4)=⋯+x1x2+x1x3+x1x4+x2x3+x2x4+x3x4。

我们发现,假如把标记去掉,这个x2x2的系数正好等于6。

也就证明了:(1+x)n(1+x)n中xkxk的系数正好等于从nn个元素中选取kk个元素的组合数(CknCnk)。

杨辉三角最本质的特征是:

它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。

杨辉三角的意义是:

其中的数列,能有效地运用于解数字系数的高次方程。

无论是在几何、代数还是三角函数中,利用“杨辉三角”都能不同程度地提高解题效率。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8920926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存