杨辉三角

 杨辉三角形,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。据说是出现在南宋时期杭州人杨辉的《详解九章算法》一书中。二项式定理与杨辉三角形是一对天然的数形趣遇,它把数形结合带进了计算数学。求二项式展开式系数的问题,实际上是一种组合数的计算问题。用系数通项公式来计算,称为“式算”;用杨辉三角形来计算,称作“图算”。而我们计算机可以很好的利用杨辉三角的性质,通过编程语言来实现输出这个三角形。将数学与见算计也完美的结合起来。下面我用两种做法来实现杨辉三角形直角三角的输出。

第一种:先逐个输出每个位置上的元素,再利用循环遍历的方法得到整个三角形。

看代码:

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();
           }

运行结果如下:

杨辉三角在数学里关于求多项式洗漱的作用非常大,现在用计算机实现了,非常好的结合了数学与计算机!

                   加油,Ajax的姑娘!

本文出自 “Ajax的姑娘” 博客,谢绝转载!

你可能感兴趣的:(编程语言,计算机,杨辉三角,帕斯卡,计算数学)