C#实现杨辉三角的示例

什么是杨辉三角

杨辉三角是由中国古代数学家杨辉(约公元1238年~约公元1298年)所创造的一种数字排列形式。

在杨辉三角中,第一行只有一个数字1,接下来的每一行的数字都是上一行相邻两个数字的和,这种排列方式被称为二项式系数。

下面是杨辉三角的前6行:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

C#实现杨辉三角

使用二维数组

在C#中,可以使用二维数组来实现杨辉三角。首先定义一个n行的二维数组,初始化第一列为1,然后从第二列开始,每一项都是它上方和左上方的两项之和。

public static void PrintYangHui(int n)

{

int[,] arr = new int[n, n];

for (int i = 0; i < n; i++)

{

arr[i, 0] = 1;

}

for (int i = 1; i < n; i++)

{

for (int j = 1; j <= i; j++)

{

arr[i, j] = arr[i - 1, j - 1] + arr[i - 1, j];

}

}

for (int i = 0; i < n; i++)

{

for (int j = 0; j <= i; j++)

{

Console.Write(arr[i, j] + " ");

}

Console.WriteLine();

}

}

使用以上函数,可以输出前n行杨辉三角的结果。

使用一维数组

在以上方法中,使用了二维数组来存储杨辉三角,但其实只需要一个一维数组就可以实现同样的功能。

每次循环时,从后往前更新数组的值,同时打印出每一行杨辉三角的结果。

public static void PrintYangHui(int n)

{

int[] arr = new int[n];

for (int i = 0; i < n; i++)

{

arr[i] = 1;

for (int j = i - 1; j > 0; j--)

{

arr[j] = arr[j] + arr[j - 1];

}

for (int k = 0; k <= i; k++)

{

Console.Write(arr[k] + " ");

}

Console.WriteLine();

}

}

杨辉三角的应用

杨辉三角不仅是一种数学的排列方式,也有很多实际的应用。

组合数学

杨辉三角可以用来求解组合数学问题,例如从n个元素中选k个元素有多少中不同的排列方式。

在杨辉三角中,第n行第k个数字可以表示从n个元素中选k个元素的不同排列方式的个数。

Pascal三角

可以使用杨辉三角来构造Pascal三角,Pascal三角是一个类似于杨辉三角的三角形,其第n行的数字是(x+y)^n的展开式中每一项的系数。

例如第4行展开式为(x+y)^4=x^4+4x^3y+6x^2y^2+4xy^3+y^4,对应的Pascal三角为:

1

1 1

1 2 1

1 3 3 1

图形设计

杨辉三角的排列方式也可以应用到图形设计中。

例如,可以使用杨辉三角来绘制一个菱形图案:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 4 6 4 1

1 3 3 1

1 2 1

1 1

1

使用以上杨辉三角中的结果,将其沿中心线左右翻转即可绘制出该图案。

结语

杨辉三角是一种有趣的数字排列方式,不仅有着数学意义,还有很多实际应用。

在C#中可以使用二维数组或一维数组来实现杨辉三角,并且通过这种排列方式还可以绘制出各种图形。

后端开发标签