Вычислить сумму элементов рекурсии: S=a1+a2+...+an где an=n!/(2^n)!

Вычислить сумму элементов рекурсии: S=a1+a2+...+an где an=n!/(2^n)!
Гость
Ответ(ы) на вопрос:
Гость
Из-за дурацкого сбоя этого сервиса при сохранении ответа пропал получасовой набор формул в LaTex. Прошу модераторов удалить этот ответ. P.S. Набираешь ответ - как по минному полю идешь. При нажатии "сохранить" неизвестно что произойти может. Например, при случайном нажатии "сохранить ответ" (каждый может ошибиться) нет анализа, того, что в поле набора данных не пусто и весь этот набор формул мгновенно "улетает в никуда". Я уж не говорю о постоянных "Вы были отключены от сервера". И еще. Поскольку автор вопроса не виноват, даю два "голых" (без формул) решения. 1. Рекурсивная программа (как не надо решать подобные задачи) { рекурcивная программа } function prod(a,b:integer):real; var   i:integer;   p:real; begin   p:=1;   for i:=a to b do p:=p*i;   prod:=p end; function pow2(n:integer):integer; var   i,p:integer; begin   p:=1;   for i:=1 to n do p:=p*2;   pow2:=p end; function an(n:integer):real; begin   if n=1 then an:=0.5   else an:=an(n-1)*n/prod(pow2(n-1)+1,pow2(n)) end; var   s:real;   i,n:integer; begin   Write('n='); Read(n);   s:=0;   for i:=1 to n do s:=s+an(i);   Writeln(s) end. Пример: n=4 0.58348214285829 2. А вот рекуррентная, которую можно написать, если немного подумать. { рекуррентная программа } var   a,p,s:real;   i,j,n,lo,hi:integer; begin   Write('n='); Read(n);   a:=0.5; s:=a; lo:=1; hi:=2;   for i:=2 to n do begin     p:=1; lo:=hi+1; hi:=hi*2;     for j:=lo to hi do p:=p*j;     a:=a*i/p;     s:=s+a     end;   Writeln(s) end. Пример n=4 0.58348214285829
Не нашли ответ?
Ответить на вопрос
Похожие вопросы