Помощь - Поиск - Пользователи - Календарь
Полная версия: Вычисление факториала методом Стирлинга
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Гость_Andrew
Собсно сабж.
Гость_Andrew
Формула стерлинга выглядит так

n!=квадратный корень_из_2*Пи*n*n^n*e^n


у меня получилось так (сразу предупрежу что я корявый и с паскалём лет 5 не сталкивался smile.gif

Цитата
program vova;
var n,o:real;
begin
Writeln('Enter the N number');
Readln(n);
o:=sqrt(2)*3.14*n*exp(n*ln(n))*exp(n*ln(2.718));
Writeln('factorial n!=',o);
Readln;
end.


Вроде что то считает (не уверен что правильно)
ввожу число 99 (и больше) - пишет ошибка 205: Переполнение плавающей запятой.
То есть вся суть пользования формулой стирлина пропадает. А пользуют её для приближённого вычисления факториалов больших чисел.

Ткните где что поправить можно.
Atos
По-моему эта формула должна выглядеть так:
Квадратный корень(2*pi*n) *((n/e)^n)
Amro
А по моему так, без всяких тама корней, хотя может я и ошибаюсь
n!= (n/e)^n*sqrt(2*pi*n)
или лучше так n! := Exp(n*Ln(n/Exp(1))) * Sqrt(2*Pi*n);
Ну это ладно!!!
Andrew А чтоб ошибка не возникала, напиши начало так
Код
{$N+} {для подклучения всех вещественных типов}
type Real = Extended; {берём более большой вещест тип}
var n,o:Real;
......................
Atos
Amro Sqrt - это и есть квадратный корень smile.gif
Amro
Цитата
Квадратный корень(2*pi*n) *((n/e)^n)

Atos В смысле не всё выражение под корнем!!!!
Atos
А, понятно... Я так и имел в виду - под корнем всё, что в первых скобках
Amro
ИМХО Значит я не доглядел
smile.gif Пардон
Altair
так, вы с формулой не ошиблись?
или мне разобраться? smile.gif ;)
viagra online without prescripti
Buy Std Medication Online Canada
how much does viagra cost at wal
puedo comprar cialis sin receta
ivermectin tablet online purchas
Viagra Paypal Accepted
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.