杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。据说是出现在南宋时期杭州人杨辉的《详解九章算法》一书中。二项式定理与杨辉三角形是一对天然的数形趣遇,它把数形结合带进了计算数学。求二项式展开式系数的问题,实际上是一种组合数的计算问题。用系数通项公式来计算,称为“式算”;用杨辉三角形来计算,称作“图算”。而我们计算机可以很好的利用杨辉三角的性质,通过编程语言来实现输出这个三角形。将数学与见算计也完美的结合起来。下面我用两种做法来实现杨辉三角形直角三角的输出。
第一种:先逐个输出每个位置上的元素,再利用循环遍历的方法得到整个三角形。
看代码:
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();
}
运行结果如下:
杨辉三角在数学里关于求多项式洗漱的作用非常大,现在用计算机实现了,非常好的结合了数学与计算机!
转载于:https://blog.51cto.com/broncho/1287091
本文探讨了杨辉三角形的历史背景及其在计算数学中的应用,特别是在计算机科学领域的实现。通过两种方法展示了如何使用编程语言输出杨辉三角形,并强调了数学与计算机科学的完美结合。


5万+

被折叠的 条评论
为什么被折叠?



