Вопрос задан 30.03.2021 в 22:39. Предмет Информатика. Спрашивает Колесникова Ирина.

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

выражения 1 – X2/(2!) + X4/(4!) – … + (–1)N·X2·N/((2·N)!) (N! = 1·2·…·N).
0 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
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Вот решение задачи на языке Pascal ABC:

scss
var X: real; N, i: integer; S, factorial: real; begin write('Введите X: '); readln(X); write('Введите N: '); readln(N); S := 1; // начальное значение суммы factorial := 1; // начальное значение факториала for i := 1 to N do begin factorial := factorial * (2 * i - 1) * (2 * i); // вычисляем факториал S := S + power(-1, i) * power(X, 2 * i) / factorial; // добавляем очередное слагаемое к сумме end; writeln('Результат: ', S); end.

Пользователю сначала предлагается ввести вещественное число X и целое число N. Затем выполняется цикл for, в котором вычисляются факториалы и добавляются соответствующие слагаемые к сумме S.

Факториал вычисляется с помощью формулы factorial := factorial * (2 * i - 1) * (2 * i), где i - номер итерации цикла.

Слагаемое добавляется к сумме с помощью формулы S := S + power(-1, i) * power(X, 2 * i) / factorial, где power(-1, i) - (-1) в степени i, power(X, 2 * i) - X в степени 2 * i, а factorial - значение факториала, вычисленное на текущей итерации цикла.

После завершения цикла выводится результат вычисления суммы S.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос