Факториел

от Уикипедия, свободната енциклопедия

Факториел е функция на естествено число n (n∈ℕ0), равна на произведението на първите n естествени числа. Например:

  • 5! = 5*4*3*2*1 = 120
  • 10! = 10*9*8*7*...*2*1 = 3628800
  • 0! се брои за 1, 0! = 1

Рекурсивно задаване на функцията факториел

Факториел може да бъде определена и чрез рекурсия, т.е. n! може да се изрази чрез факториел от естествени числа, по-малки от n:

  • n!=(n-1)!·n

Използвайки началната стойност 1! =1 и рекурсивното задаване на функцията, можем да я изчислим за всяка стойност на n∈ℕ.

Произволни реални и комплексни числа

Факториелът може да се определи и за произволното комплексно число z, по същия начин, както се определя факториела за естествени числа, но се нарича Гама-функция на Ойлер:

която може и да се определи като : , а предното определение следва от това след интегриране по части. Въведеното от самия Ойлер определение е:

, а днес използваното дължим на Адриан Мари Льожандър.

Интересно следствие от тези определения е, че


Приложения

Използва се в теорията на числата (например за изразяване на коефициентите на Нютоновия бином), при разлагането на аналитичните функции, например синус и косинус, в ред на Тейлър, което позволява практическото им изчисление с дадена точност, и т.н.

В компютърните науки

Имплементация на някои програмни езици:

Псевдокод (рекурсивно):
функция факториел:
вход: цяло число n където n >= 0
изход: [n × (n-1) × (n-2) × … × 1]
1. ако n е 0, върни 1 2. иначе, върни [ n × факториел(n-1) ]
край факториел

C (език за програмиране):

int factorial(int n)
{
  if(n == 0)
    return 1;

  return n * factorial(n - 1);
}

Java:

private int factorial(int n)
{
   if(n == 0)
       return 1;

   return n * factorial(n - 1);
}

PHP:

function factorial($n)
{
    if($n == 0)
        return 1;

    return $n * factorial($n -1);
}

C#:

static void Main()
    {
        int n = int.Parse(Console.ReadLine());
        int fact = 1;

        do
            {
                fact = fact * n; //fact *= n;
                n--;
            } while (n>1);
            Console.WriteLine(fact);

    }

Външни връзки

Шаблон:Математика-мъниче