From c0b878e8efb46efb050a23a76e992f4e27059438 Mon Sep 17 00:00:00 2001 From: Renge Date: Mon, 19 Feb 2024 23:38:00 -0500 Subject: [PATCH] init: first commit --- A/append.P | 15 +++++++++++++++ A/cycle.P | 8 ++++++++ A/randomgen.py | 5 +++++ A/reach.P | 22 ++++++++++++++++++++++ README.md | 0 5 files changed, 50 insertions(+) create mode 100644 A/append.P create mode 100644 A/cycle.P create mode 100644 A/randomgen.py create mode 100644 A/reach.P create mode 100644 README.md diff --git a/A/append.P b/A/append.P new file mode 100644 index 0000000..f1a4107 --- /dev/null +++ b/A/append.P @@ -0,0 +1,15 @@ +append([],Ys,Ys). +append([X|Xs],Ys,[X|Zs]) :- append(Xs,Ys,Zs). + +suffix(Xs, Ys) :- + append(Xs, Suffix, Ys), + write(Suffix). + +cut(Zs) :- + findall([Xs,Ys], (append(Xs, Ys, Zs)), Results), + print_results(Results). + +print_results([]). +print_results([Result|Results]) :- + write(Result), nl, + print_results(Results). diff --git a/A/cycle.P b/A/cycle.P new file mode 100644 index 0000000..dfcf8df --- /dev/null +++ b/A/cycle.P @@ -0,0 +1,8 @@ +edge(1,2). +edge(2,1). +edge(1,3). + +path(X,Y) :- edge(X,Y). +path(X,Y) :- edge(X,Z), path(Z,Y), !. + +cycle(X) :- path(X,X), !. diff --git a/A/randomgen.py b/A/randomgen.py new file mode 100644 index 0000000..48a553c --- /dev/null +++ b/A/randomgen.py @@ -0,0 +1,5 @@ +import random +for i in range(10000): + j = random.randint(1,1000) + k = random.randint(1,1000) + print("edge(", j, ",", k, ").") \ No newline at end of file diff --git a/A/reach.P b/A/reach.P new file mode 100644 index 0000000..11e0d9b --- /dev/null +++ b/A/reach.P @@ -0,0 +1,22 @@ +source(3). +edge(0,1). +edge(1,2). +edge(1,5). +edge(2,5). +edge(3,5). +edge(3,5). + +%input :- [reachin1000]. % one way of reading input facts +%:- include(reachin1000). % 2nd way of reading input facts + +reach(X) :- source(X). +reach(Y) :- reach(X), edge(X,Y). + +:- table reach/1. + +printReach :- reach(X), write(X), write(' '), fail. +printReach. + +%timeReach :- cputime(X), input, printReach, cputime(Y), T is Y-X, write(T). +%timeReach :- input, cputime(X), printReach, cputime(Y), T is Y-X, write(T). +timeReach :- cputime(X), printReach, cputime(Y), T is Y-X, write(T). diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29