В pascal abc. Без факториалов. Дано вещественное число X и целое число N (> 0). Найти...

0 голосов
53 просмотров

В pascal abc. Без факториалов. Дано вещественное число X и целое число N (> 0). Найти значение выражения 1 – X2/(2!) + X4/(4!) – … + (–1)N·X2·N/((2·N)!) (N! = 1·2·…·N).


Информатика (127 баллов) | 53 просмотров
0

Всем на паскале подавай(

0

НУ вот так

0

В стиле с++ слишком сложный, да?

Дан 1 ответ
0 голосов
Правильный ответ

Автор вопроса презирает скобки, поэтому выражение для суммы написано криво и можно догадаться, что он имел в виду лишь потому, что он не один такой, да еще и сама задача публикуется не впервые.
\displaystyle S=1- \frac{x^2}{2!}+\frac{x^4}{4!} -...+(-1)^n\frac{x^{2n}}{(2n)!} =1+\sum_{i=1}^n(-1)^n\frac{x^{2n}}{(2n)!}; \\ S=1+\sum_{i=1}^na_i, \quad a_i=(-1)^n\frac{x^{2n}}{(2n)!}, \ i\in[1..n], \mathbb N
\displaystyle a_1= -\frac{x^2}{2!}= -\frac{x^2}{1\cdot2}= -\frac{x^2}{2}; \quad a_2= \frac{x^4}{4!}= \frac{x^2\cdot x^2}{1\cdot2\cdot3\cdot4}=\frac{-a_1\cdot x^2}{3\cdot4}; \\ \\ a_3= \frac{x^6}{6!}= \frac{x^4\cdot x^2}{1\cdot2\cdot3\cdot4\cdot5\cdot6}=\frac{-a_2\cdot x^2}{5\cdot6}; \\ \\
a_k=(-1)^k\frac{x^{2k}}{(2k)!}= \frac{x^2\cdot x^2\cdot ...\cdot x^2}{1\cdot2\cdot3\cdot4\cdot ...\cdot (2k-1)\cdot 2k}=\frac{-a_{k-1}\cdot x^2}{(2k-1)\cdot2k}
Мы получили отличную рекуррентную формулу, которая позволит обойтись без вычислений факториалов и высоких степеней х.
\displaystyle S=1+\sum_{i=1}^na_i, \\
a_i=\frac{-a_{i-1}\cdot x^2}{(2i-1)\cdot2i}; \quad a_1=- \frac{x^2}{2}, \quad i\in[1;n],\mathbb N

PascalABC.NET 3.2, сборка 1383 от 09.02.2017
(нет у меня этой древней версии Pascal ABC, её 10 лет назад разработчик на своем сайте удалил и теперь с .NET работает).
Но в Pascal ABC программа тоже пойдет.

var
  x,s,a,x2:real;
  i,n:integer;
begin
  Write('Введите х и n: '); Read(x,n);
  x2:=x*x; a:=-x2/2; s:=1+a;
  for i:=2 to n do begin
    a:=-a*x2/((2*i-1)*2*i);
    s:=s+a
    end;
  Writeln('S=',s)
end.

Пример
Введите х и n: 3.15 10
S=-0.999964658391118

(150k баллов)