Сумма ряда со степенями - 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).
Объяснение кода листинга программы
Код решает задачу нахождения суммы ряда со степенями. В коде определены два предиката:
- sum_(integer,real,real,real) - внутренний предикат, который используется для вычисления суммы ряда.
- sum(integer,real,real) - внешний предикат, который используется для вызова внутреннего предиката и получения результата. Внутренний предикат sum_(N,X,A,S) использует следующую схему:
- Если N=1, то X присваивается значение A.
- Если 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д