サーチ…


パスカルのトライアングル基本情報

最も興味深い数字パターンの1つがパスカルの三角です。有名なフランス人の数学者、哲学者、 ブレイズパスカルの名前を冠した名前「パスカルの三角形」。

数学では、パスカルの三角形は、二項係数の三角形の配列です。パスカルの三角形の行は、通常、先頭行(0行目)で行n = 0から列挙されます。各行のエントリは、左端の先頭からk = 0で番号付けされ、通常、隣接する行の番号に対して相対的にずらされています。

三角形は以下のように構成されます:

  • 一番上の行には、一意のゼロ以外のエントリ1があります。
  • 後続の各行の各エントリは、空白のエントリを0として扱い、上と下の数字を上と下の数字で追加して作成します。

たとえば、最初の(または他の)行の最初の数字は1(0と1の合計)ですが、3番目の行の数字1と3が4番目の行の数字4を生成するために加算されます。

Pascal triangleで各エントリを生成する方程式:

パスカル方程式

任意の負でない整数nおよび0からnまでの任意の整数kについてこの二項係数の再帰は、 パスカルのルールとして知られています。パスカルの三角形は、より高い次元の一般化をしています。三次元版はPascalの四面体と呼ばれ、Pascalの四面体はPascalの四面体と呼ばれます。

パスカルの三角形の例:

パスカルの三角形の例

C#でのパスカルの三角形の実装

public class PascalsTriangle
{
    static void PascalTriangle(int n)
    {
        for (int line = 1; line <= n; line++)
        {
            int c = 1;
            for (int i = 1; i <= line; i++)
            {
                Console.WriteLine(c);
                c = c * (line - i) / i;
            }
            Console.WriteLine("\n");
        }
    }

    public static int Main(int input)
    {
        PascalTriangle(input);
        return input;
    }
}

C言語のパスカル三角形

int i, space, rows, k=0, count = 0, count1 = 0;
row=5;
for(i=1; i<=rows; ++i)
{
    for(space=1; space <= rows-i; ++space)
    {
        printf("  ");
        ++count;
    }

    while(k != 2*i-1)
    {
        if (count <= rows-1)
        {
            printf("%d ", i+k);
            ++count;
        }
        else
        {
            ++count1;
            printf("%d ", (i+k-2*count1));
        }
        ++k;
    }
    count1 = count = k = 0;

    printf("\n");
}

出力

        1
      2 3 2
    3 4 5 4 3
  4 5 6 7 6 5 4
5 6 7 8 9 8 7 6 5


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow