algorithm
Треугольник Паскаля
Поиск…
Основная информация о Pascal's Triagle
Одним из наиболее интересных шаблонов чисел является Треугольник Паскаля . Название «Треугольник Паскаля», названный в честь Блейза Паскаля , известного французского математика и философа.
В математике Треугольник Паскаля представляет собой треугольный массив биномиальных коэффициентов. Строки треугольника Паскаля обычно перечисляются, начиная с строки n = 0 в верхней части (0-я строка). Записи в каждой строке пронумерованы слева от k = 0 и обычно расположены в шахматном порядке относительно чисел в соседних строках.
Треугольник строится следующим образом:
- В самой верхней строке есть уникальная ненулевая запись 1.
- Каждая запись каждой следующей строки строится путем добавления числа выше и слева с номером выше и направо, обрабатывая пустые записи как 0.
Например, начальное число в первой (или любой другой) строке равно 1 (сумма 0 и 1), тогда как числа 1 и 3 в третьей строке добавляются для создания числа 4 в четвертой строке.
Уравнение для генерации каждой записи в треугольнике Паскаля:
для любого неотрицательного целого n и любого целого k между 0 и n включительно. Этот повтор для биномиальных коэффициентов известен как правило Паскаля . Треугольник Паскаля имеет более высокие размерные обобщения. Трехмерная версия называется пирамидой Паскаля или тетраэдром Паскаля, в то время как общие версии называются упрощениями Паскаля.
Пример треугольника Паскаля:
Реализация Треугольника Паскаля в 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