1. Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

    Скрыть объявление

Итеративный Алгоритм

Тема в разделе "Другие", создана пользователем -, 21 ноя 2011.

Наш партнер Genesis Hackspace
  1. Гость

    Ребята, помогите пожалуйста.
    Вот задача нахождения факториала на VIP v5.2 по итеративному алгоритму:

    prolog Код:
    predicates
    factorial(unsigned, long)
    factorial(unsigned, long, unsigned, long)
    clauses
    factorial(N, FactN) :-
    factorial(N, FactN, 1, 1).
    factorial(N, FactN, N, FactN) :- !.
    factorial(N, FactN, I, P) :-
    NewI = I+1,
    NewP = P*NewI,
    factorial(N, FactN, NewI, NewP).
    goal
    X=3,
    factorial (X, FactX).

    А мне нужно решить задачу нахождения суммы ряда ряда
    s=1/sin1 + 1/(sin1+sin2) + ... +1/(sin1+sin2+...sinN), где N - натуральное число, тоже итеративным алгоритмом. Препод говорит что решение очень похоже на нахождение факториала, нужно только немного изменить.
    Кто может, помогите.
     
  2. rrrFer

    rrrFer Гость

    подскажу, предикат должен быть описан так:
    p( NL, N, S, R )

    работать как то так:

    Код (Text):
    p( N, N, _, 0 ):-!.
    p( N, I, S, R ):-
    II = I + 1,
    SS = S + sin(I),
    p( N, II, SS, RR ),
    R = RR + 1 / SS.
    не проверял
     
Загрузка...

Поделиться этой страницей