База ответов ИНТУИТ

Основы программирования на языке Visual Prolog

<<- Назад к вопросам

Определение предикатов arc, cont и path имеет вид:
arc(1, 2).arc(1, 3).arc(3, 4).arc(2, 4).  cont([X | L], [Z, X | L]):- arc(X, Z), not(isMember(Z, L)).  path([[Y | L] | _], Y, [Y | L]):- !.path([P | PL], Y, R):- findall(P1, cont(P, P1), L1), append(PL, L1, PL1),path(PL1, Y, R). 
Укажите решение для цели path([[1]], 4, P) .

(Отметьте один правильный вариант ответа.)

Варианты ответа
[1, 3, 4]
[1, 2, 4]
[4, 2, 1](Верный ответ)
[4, 3, 1]
Похожие вопросы
Определение предикатов arc, cont и path имеет вид:
arc(1, 3).arc(3, 4).  cont([X | L], [Z, X | L]):- arc(X, Z), not(isMember(Z, L)).  path([[Y | L] | _], Y, [Y | L]).path([P | PL], Y, R):- findall(P1, cont(P, P1), L1), append(L1, PL, PL1),path(PL1, Y, R). 
Предикат path реализует алгоритм
Определение предикатов arc, cont и path имеет вид:
arc(1, 3).arc(3, 4).  cont([X | L], [Z, X | L]):- arc(X, Z), not(isMember(Z, L)).  path([[Y | L] | _], Y, [Y | L]).path([P | PL], Y, R):- findall(P1, cont(P, P1), L1), append(PL, L1, PL1),path(PL1, Y, R). 
Предикат path реализует алгоритм
Определение предикатов arc и path имеет вид:
arc(1, 2). arc(1, 3).arc(3, 4).path([X | L], X, [X | L]).path([X | L], Y, P):- arc(X, Z), not(isMember(Z, L)), path([Z, X | L], Y, P). 
В результате вызова цели path([1], 4, P) переменная P примет значение:
Определение предикатов arc и path имеет вид:
arc(1, 3).arc(3, 4).path([X | L], X, [X | L]).path([X | L], Y, P):- arc(X, Z), not(isMember(Z, L)), path([Z, X | L], Y, P). 
Предикат path реализует алгоритм
Определение предикатов arc и path имеет вид:
arc(1, 2). arc(1, 3).arc(2, 4).arc(3, 4).path([X | L], X, [X | L]).path([X | L], Y, P):- arc(X, Z), not(isMember(Z, L)), path([Z, X | L], Y, P). 
Сколько решений имеет цель path([1], 4, P) ?
Определение предиката append имеет вид:
 append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L).
Найти предпоследний элемент списка L = [1, 2, 3, 4, 5] можно с помощью цели
Начальное значение факта-переменной n равно 0. Определение предикатов fruit и print имеет вид:
fruit(1, "apple").fruit(2, "pear").		print() :- repeat(), fruit(_, X), write(X), nl, n := n + 1, n = 3, !.print(). 
Напишите название фрукта, которое будет напечатано последним при вызове цели print():
Определение предикатов min и run имеет вид:
min(X, Y, X):- X < Y, !.min(X, Y, Y):- X >= Y.run():- min(1, 3, X), write(X), nl, fail; _ = readLine(). 
Укажите правильное объявление предиката min:
Определение предиката append имеет вид:
append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L). 
Какое значение примет переменная L в результате вызова append([1, 2], [2, 3], L)?
Определение предиката append имеет вид:
append([], L, L).append([A | L1], L2, [A | L]) :- append(L1, L2, L). 
Какое значение примет переменная L в результате вызова append([1, 2, 3], [], L)?