杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。据说是出现在南宋时期杭州人杨辉的《详解九章算法》一书中。二项式定理与杨辉三角形是一对天然的数形趣遇,它把数形结合带进了计算数学。求二项式展开式系数的问题,实际上是一种组合数的计算问题。用系数通项公式来计算,称为“式算”;用杨辉三角形来计算,称作“图算”。而我们计算机可以很好的利用杨辉三角的性质,通过编程语言来实现输出这个三角形。将数学与见算计也完美的结合起来。下面我用两种做法来实现杨辉三角形直角三角的输出。
第一种:先逐个输出每个位置上的元素,再利用循环遍历的方法得到整个三角形。
看代码:
private static int GetTriangle(int line, int row) { if (row == 1 || line == row)//如果列数位1,或者行等于列,输出值为1 { return 1; } else//否则输出它头顶的数和头顶数前一列(同一行)的数和 { return GetTriangle(line - 1, row - 1) + GetTriangle(line - 1, row); } }
这是方法部分。调用部分如下:
for (int line = 1; line < 10; line++) { for (int row = 1; row < line + 1; row++) { GetTriangle(line, row);//得到第line行第row列位置上的元素 Console.Write(" "); Console.Write(GetTriangle(line, row)); //输出第line行第row列位置上的元素 } Console.WriteLine();//第line行输完后换行 }
第二种:直接利用循环就能输出的。
看代码:
//准备一个10行10列的二维数组来存放相应位置上输出的数 int[ ,] ary = new int[10, 10]; for (int i = 0; i < 10; i++)//其中i表示行的索引 { for (int j = 0; j < i + 1; j++)//其中j表示列的索引 { //其中第0列或者行列的索引的值相等的位置输出值都为1 if (j == 0 || i == j) { ary[i, j] = 1; Console.Write(ary[i, j]);//向屏幕输出值 Console.Write("\t"); } else {//否则输出结果为它头顶上的数加上与头顶数同行的前一位 ary[i, j] = ary[i - 1, j - 1] + ary[i - 1, j]; //输出要求的数 Console.Write(ary[i, j]); //在目前输出的数后加入空格(主要是用来美化最后输出的结果) Console.Write("\t"); } } //每一行输出完成后换行 Console.WriteLine(); }
运行结果如下:
杨辉三角在数学里关于求多项式洗漱的作用非常大,现在用计算机实现了,非常好的结合了数学与计算机!