Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Расчёт числа Эйлера


Alois ©   (2005-11-18 22:55:00) 

Уважамые мастера, поогите плиз. Как рассчитать число Эйлера рекурсивно? Формула расчёта: sum = 1/0! + 1/1! + 1/2! + ... + 1/n!


Separator   (2005-11-19 21:12:00) [1]

О блин, классно
Но учти, так дольше


Alois   (2005-11-19 20:42:00) [2]

Спасибо всем, кто откликнулся!
Надо было так:

function eulerRekursiv(n: integer): double;
begin
 if n = 0 then result:= 1
       else
 result := 1.0/fact(n) + eulerRekursiv(n - 1);
end;


MBo   (2005-11-19 11:00:00) [3]

Cчет в прямом порядке:


function E(N: Integer): Double;

 function Recurse(M: Integer; InvFac: Double): Double;
 begin
   if M = N then
     Result := InvFac / M
   else begin
     InvFac := InvFac / M;
     Result := InvFac + Recurse(M + 1, InvFac);
   end;
 end;

begin
 Result := 1 + Recurse(1, 1);
end;


Virgo_Style   (2005-11-19 09:01:00) [4]

kami ©   (18.11.05 23:29) [3]

Точно, спасибо :-)

Alois   (19.11.05 1:11) [4]

Как именно не работает?


Alois   (2005-11-19 01:11:00) [5]

Спасибо, но что-то тоже не работает.


kami   (2005-11-18 23:29:00) [6]

Virgo_Style ©   (18.11.05 23:05) [1]

Result:=1/Fact(N)+1/Eiler(N-1);

Вроде, должно быть
Result:=1/Fact(N)+Eiler(N-1);

Надеюсь, тоже ничего не напутал. :)


Alois   (2005-11-18 23:13:00) [7]

Большое спасибо!


Virgo_Style   (2005-11-18 23:05:00) [8]

function Eiler(N:Integer):Double;//наверняка пишется не так, надеюсь, он не обидится -)
begin
 if N=0 then
   Result:=1/Fact(0)
 else  
   Result:=1/Fact(N)+1/Eiler(N-1);
end;


Надеюсь, ничего не напутал. Если встроенной функции факториала нет - напиши сам, можно тоже с рекурсией.


Наверх

Титульная страница Поиск, карта сайта Написать письмо