Поиск…


Основная информация о 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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow