
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[34.238.189.240] |
![]() |
|
Сообщ.
#1
,
|
|
|
Факториалом числа N называют произведение всех натуральных чисел от 1 до N (включительно).
Записывается так: N! Факториал 0 равен 1 - 0!=1 Факториалы отрицательных или действительных чисел не существует (ну или не используются). Внимание: факториалы чисел очень быстро растут в значениях, при росте N, и даже при относительно небольших N 100 уже будут иметь огромные числовые значения. Так факториал 20 - 20!=2432902008176640000 А факториал 100 будет уже из 158 цифр !!! Для чего нужен факториал? Довольно часто в некоторых математических формулах вычисление значений определённых функций сводятся к последовательному произведению определённых выражений, причём тем более точно вычисляется функция, чем длиннее последовательность этих выражений. В таких уравнениях из выражений можно вычленить часть, которая является факториалом числа, и, найдя его заранее, можно упростить решение. Бывают и более сложные функции того-же строения, у которых факториалы присутствуют в каждом члене. Вот например: sin(x)=x-(x3/3!)+(x5/5!)-(x7/7!)... Чем дальше выполнять вычисления, тем большей точности мы добьёмся при вычислении значения синуса угла X. Теперь о методах вычисления факториала. Простейшим методом, который наверно знают даже школьники, является простая рекурсивная функция: ![]() ![]() function Factorial(n: word): LongInt; begin if n=0 then Factorial := 1 else Factorial := n*Factorial(n-1); end; Гораздо более предпочтительным является другой школьный вариант, который может показаться очень банальным, однако я бы как раз назвал его наиболее используемым: ![]() ![]() function Factorial(n: word): LongInt; var fact: longint; begin fact := 1; if n=0 then exit; for n := 1 to n do fact := fact*n; Factorial := fact; end; Если же вам нужны факториалы больших чисел, то вычислять их значение можно только в строки, либо в массивы чисел, поскольку нет таких типов численных переменных, которые могли бы вместить скажем значение 2000! Сообщения были разделены в тему "Приблизительное вычисление факториалов" |