Сумма ряда со степенями - Prolog

Узнай цену своей работы

Формулировка задачи:

Здравствуйте всем. Задачака составить программу на прологе для подсчёта суммы ряда 1+х+x^2+x^3+...+x^n , где x и n задаются. Я ни черта не шарю этот пролог, а показать результат надо уже завтра. Мне очень нужна просто рабочая прога и очень нужна ваша помощь! Нашёл тут это Сумма ряда. Turbo Prolog - нечто похожее, но и то я понять не в силах понять как это работает и тем более переделать это под свою задачку. Помогите пожалуйста!

Решение задачи: «Сумма ряда со степенями»

textual
Листинг программы
predicates
sum_(integer,real,real,real)
sum(integer,real,real)
 
clauses
sum_(1,X,_,X) :- !.
sum_(N,X,A,S) :- Q=A*X, N1=N-1, sum_(N1,X,Q,S1), S=S1+Q.
 
sum(N,X,S) :- sum_(N,X,1.0,S).

Объяснение кода листинга программы

Код решает задачу нахождения суммы ряда со степенями. В коде определены два предиката:

  1. sum_(integer,real,real,real) - внутренний предикат, который используется для вычисления суммы ряда.
  2. sum(integer,real,real) - внешний предикат, который используется для вызова внутреннего предиката и получения результата. Внутренний предикат sum_(N,X,A,S) использует следующую схему:
  3. Если N=1, то X присваивается значение A.
  4. Если N>1, то X умножается на A и присваивается значение (N-1). Далее рекурсивно вызывается sum(N-1,X,A,S1), где S1 - результат предыдущего вычисления. Затем S присваивается значение S1+Q. Внешний предикат sum(N,X,S) просто вызывает внутренний предикат sum(N,X,1.0,S). Таким образом, если мы вызовем sum(N,X,S), то получим сумму ряда со степенями от 0 до N-1, где каждое слагаемое имеет вес X.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.417 из 5
Похожие ответы