![]() |
|
|
![]()
|
|
| eddilou |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 10.5.2012 Репутация: нет Всего: нет |
Здравствуйте всем, помогите пожалуйста решить данные задачи, только начал изучать, а уже такое дают... пишу на SWI-Prolog
1. Напишите программу вычисления целочисленного квадратного корня из натурального числа N, определяемого как число I, такое, что I*I <= N, но (I+1)*(I+1) > N . Используйте определение предиката between/3 для генерирования последовательности натуральных чисел с помощью механизма возвратов. 2. Определим операторы: :- op( 100, fy, ~). :- op( 110, xfy, &). :- op( 120, xfy, v). Булева формула есть терм, определяемый следующим образом: константы true и false - булевы фор-мулы; если X и Y - булевы формулы, то и X v Y, X & Y, ~X - булевы формулы, здесь v и & - бинарные инфиксные операторы дизъюнкции и конъюнкции, а ~ - унарный оператор отрицания. Напишите программу, распознающую логические формулы в дизъюнктивной нормальной форме, т.е. формулы, являющиеся дизъюнкцией конъюнкций литералов, где литерал - атомарная формула или ее отрицание. (См. решение задачи о конъюнктивной нормальной форме). 3. Определите предикат occurances(+Sub,+Term,-N), истинный, если число N равно числу вхождений подтерма Sub в терм Term. Предполагается, что терм Term не содержит переменных. Любой терм t – это дерево. И любое поддерево в этом дереве представляет терм t1, который и называется подтермом исходного терма t. Например, терм f(x)+p(f(x)*g([5,a+b,5+a])) содержит следующие подтермы Подтерм Количество вхождений данного подтерма в терм f(x)+p(f(x)*g([5,a+b,5+a])) 1 f(x) 2 p(f(x)*g([5,a+b,5+a])) 1 x 2 f(x)*g([5,a+b,5+a]) 1 g([5,a+b,5+a]) 1 [5,a+b,5+a] 1 5 2 a+b 1 5+a 1 a 2 b 1 4. Натуральное число n называется совершенным, если сумма всех его делителей равна 2n. Найдите все совершенные числа, меньшие 1000 (их должно быть 3). |
|||
|
||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |