задачи (2) (Старые варианты экзамена)
Описание файла
Файл "задачи (2)" внутри архива находится в папке "Старые варианты экзамена". PDF-файл из архива "Старые варианты экзамена", который расположен в категории "". Всё это находится в предмете "математическая логика и логическое программирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Кратчайшее по длине слово X, которое имеет с каждым словом текста L хотя бы одну общуюбукву.? G(L,X).g(L, X) :- p(L,X, Len), Len1 is Len - 1, not(p(L, Y, Len1)).p(L, X, Len) :- member(X,L), common_letters(X,L), length(X, Len).common_letters(X, [Y]) :- member(Z, X), member(Z, Y), !.common_letters(X, [Y | Ys]) :- member(Z, X), member(Z, Y), !, common_letters(X, Ys).Разбивает словарь L на непересекающиеся по общим буквам множества.? G(L,X,Y).g(L, X, Y) :- subset(X, L), set_diff(L, X, Y), no_words_w_common_letters(X, Y).subset([], _).subset([X | Xs], [X | Ys]) :- subset(Xs, Ys).subset(X, [_ | Ys]) :- subset(X, Ys).set_diff([], _, []).set_diff([X | Xs], Y, Res) :- member(X, Y), !, set_diff(Xs, Y, Res).set_diff([X | Xs], Y, [X | Res]) :- set_diff(Xs, Y, Res).no_words_w_common_letters([], _).no_words_w_common_letters([X | Xs], Y) :- no_common_letters(X, Y),no_words_w_common_letters(Xs, Y).no_common_letters(_, []).no_common_letters(X, [Y | Ys]) :- not(common_letter(X, Y)), no_common_letters(X, Ys).common_letter(X, Y) :- member(Z, X), member(Z, Y).Бесповторный список Х из слов L1, в которых есть хотя бы одна буква, не встречающаяся в L2.? G(L1,L2,X).g(L1, L2, X) :- all_letters(Let1, L1), all_letters(Let2, L2), make_set(Let1, S1), make_set(Let2, S2),set_diff(S1, S2, D), words_w_unique_letters(L1, D, X).all_letters([], []).all_letters(Res, [X | Xs]) :- all_letters(Res1, Xs), append(X, Res1, Res).make_set([], []).make_set([X | Xs], Res) :- member(X, Xs), !, make_set(Xs, Res).make_set([X | Xs], [X | Res]) :- make_set(Xs, Res).set_diff([], _, []).set_diff([X | Xs], Y, Res) :- member(X, Y), !, set_diff(Xs, Y, Res).set_diff([X | Xs], Y, [X | Res]) :- set_diff(Xs, Y, Res).words_w_unique_letters([], _, []).words_w_unique_letters([W | Ws], D, [W | Res]) :- member(L, W), member(L, D), !,words_w_unique_letters(Ws, D, Res).words_w_unique_letters([_ | Ws], D, Res) :- words_w_unique_letters(Ws, D, Res).Максимальное подмножество X, кратных одному и тому же числу из X.? G(L,X).g(L, X) :- p(X, L, Len), Len1 is Len + 1, not(p(Y, L, Len1)).p(X, L, Len) :- subset(X, L), length(X, Len), divs(X).divs(X) :- member(D, X), all_divs(D, X).subset([], _).subset([X | Xs], [X | Ys]) :- subset(Xs, Ys).subset(X, [_ | Ys]) :- subset(X, Ys).all_divs(D, []).all_divs(D, [X | Xs]) :- M is X mod D, M == 0, all_divs(D, Xs).Смесь слов.? G(L,X).g(L, X) :- p(L, L, X).p([], _, []).p([W | Ws], L, [W | Res]) :- not(mix(W, L)), !, p(Ws, L, Res).p([_ | Ws], L, Res) :- p(Ws, L, Res).mix(W, L) :- member(U, L), member(V, L), dif(U, V), append(U1, U2, U),append(V1, V2, V), append(U1, V1, L1),append(U2, V2, L2), append(L1, L2, W)..