Форум программистов, компьютерный форум, киберфорум
Prolog
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 28

Арифметическая прогрессия

03.04.2015, 17:36. Показов 3606. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дать определение N-ного члена арифметической прогрессии.
Помогите пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2015, 17:36
Ответы с готовыми решениями:

Арифметическая прогрессия: найти сумму n членов
Найти суму N членов арифметической прогрессии вида 2^a, шаг прогрессии 2. Помогите пожалуйста. Программа постоянно выдает ошибки (из за...

Арифметическая операция в условии поиска
Здравствуйте! Добавлено через 17 минут Здравствуйте! Есть вопрос по поиску во внутренней базе данных. Используется Arity Prolog,...

Факториал как арифметическая операция
Используется GNU Prolog. Можно ли каким-то образом определить ! (ну или какой-нибудь другой символ, поскольку ! уже занят под...

9
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,679
Записей в блоге: 14
03.04.2015, 18:51
С рекурсией:

Prolog
1
2
3
4
5
6
predicates
nth(integer,real,real,real)
 
clauses
nth(1,A,_,A) :- !.
nth(N,A,D,Z) :- N1=N-1, nth(N1,A,D,Z1), Z=Z1+D.
Без рекурсии:

Prolog
1
2
3
4
5
predicates
nth(integer,real,real,real)
 
clauses
nth(N,A,D,Z) :- Z=A+(N-1)*D.
1
0 / 0 / 0
Регистрация: 01.10.2013
Сообщений: 28
03.04.2015, 20:02  [ТС]
Спасибо, Вы очень помогли!
0
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 120
25.06.2015, 20:51
Подскажите, пожалуйста, как на SWI-Prolog написать эту задачу?
Ошибка вылетает: ERROR: Out of local stack
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
25.06.2015, 21:53
Prolog
1
2
nth(1,A,_,A) :- !.
nth(N,A,D,Z) :- N1 is N-1, nth(N1,A,D,Z1), Z is Z1+D.
1
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 120
26.06.2015, 12:19
Цитата Сообщение от Black Fregat Посмотреть сообщение
Prolog
1
2
nth(1,A,_,A) :- !.
nth(N,A,D,Z) :- N1 is N-1, nth(N1,A,D,Z1), Z is Z1+D.
Большое спасибо, заработало.
Подскажите пожалуйста что за оператор такой IS и почему "=" не работает?
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
26.06.2015, 15:14
Замена '=' на 'is' - первый шаг при переводе Turbo и Visual на другие диалекты
is - это вычисление выражения
-Number is +Expr [ISO]
True when Number is the value to which Expr evaluates.
Для понимания разницы просто попробуйте оба в командной строке:
Code
1
2
3
1 ?- X = 1+2, Y is 1+2.
X = 1+2,
Y = 3.
0
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 120
26.06.2015, 16:37
Ок значит равно как присваивание выражения идущего за ним, а IS подсчитывается значение после него идущее и итог в переменную присваивается.

Еще один вопрос тогда про синтаксис))
X<>Y. как записать?
0
Фрилансер
 Аватар для Black Fregat
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
26.06.2015, 17:18
Для чисел "равно" и "не равно" в SWI записываются как =:= и =\=

Не по теме:

Всё это есть в прилагаемой справке.
Я как раз оттуда, поскольку сам этого обычно никогда не помню..

1
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 120
26.06.2015, 22:54
Спасибо.
Насчет справки, я в английском не силен.
Но в инете конечно поискал а не сразу с вопросами сюда. Не нашел (

А если не числа сравниваются?
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  marka("russkie1").
  marka("bolgarskie").
  marka("chewskie").
  marka("russkie2").
 
  odinakovie(X,X).
  odinakovie("russkie1","russkie2").
  odinakovie("russkie2","russkie1").
 
  solution(Y1,Y2,Y3,Y4):- marka(Y1),marka(Y2),Y1<>Y2,
    marka(Y3),Y1<>Y3,Y2<>Y3,
    marka(Y4),Y1<>Y4,Y2<>Y4,Y3<>Y4,
    not(odinakovie(Y1,Y2)),
    not(odinakovie(Y1,Y4)),
    not(odinakovie(Y3,Y4)),
    not(odinakovie(Y1,Y3)),
    not(odinakovie(Y2,Y4)),
    Y1<>"bolgarskie".
Добавлено через 5 часов 18 минут
Так и не нашел как "не равно" сделать, пришлось вывернуться через NOT.
Вот код работающий может пригодится кому.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
marka("russkie1").
marka("bolgarskie").
marka("chewskie").
marka("russkie2").
 
odinakovie(X,X).
odinakovie("russkie1","russkie2").
odinakovie("russkie2","russkie1").
 
solution(Y1,Y2,Y3,Y4):-
    marka(Y1),marka(Y2),not(Y1=Y2),
    marka(Y3),not(Y1=Y3),not(Y2=Y3),
    marka(Y4),not(Y1=Y4),not(Y2=Y4),not(Y3=Y4),
    not(odinakovie(Y1,Y2)),
    not(odinakovie(Y1,Y4)),
    not(odinakovie(Y3,Y4)),
    not(odinakovie(Y1,Y3)),
    not(odinakovie(Y2,Y4)),
    not(Y1="bolgarskie").
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2015, 22:54
Помогаю со студенческими работами здесь

Арифметическая задача на Turbo Prolog
Помогите выполнить) :thank_you: Вычислить значение функции y для произвольного значений x . y=\begin{cases}2x^3 &amp; \text{ if }...

Рекурсия - геометрическая прогрессия
1. Вычислить сумму от 2 до n 2.Найти n-член геометрической прогрессии. Добавлено через 13 минут predicates ...

Арифметическая прогрессия
Найти n-й член арифметической прогрессии (нумерация начинается с нуля). (defun arithmetic-n (z s n) (+ z (* s n))) &gt;...

Арифметическая прогрессия
Всем добрый день! Помогите, пожалуйста, написать программу, которая вычисляет сумму первых n членов арифметической прогрессии. Задачка...

Геометрическая прогрессия
Посчитать сумму N элементов геометрической прогрессии. Знаменатель прогрессии и первый элемент задать с клавиатуры. 3я лаба...общие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru