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组成的,而其余的数则是等于它肩上的两个数之和。
杨辉三角的意义是:
其中的数列,能有效地运用于解数字系数的高次方程。
无论是在几何、代数还是三角函数中,利用“杨辉三角”都能不同程度地提高解题效率。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)