algorithm
パスカルの三角形
サーチ…
パスカルのトライアングル基本情報
最も興味深い数字パターンの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