/*random*/ /*Random number generator Alan Bundy 22.11.79*/ /*Get Num from Seed and update seed*/ random(Range,Num) :- seed(Seed), Num is (Seed mod Range) + 1, retract(seed(Seed)), NewSeed is 125*Seed+1, assert(seed(NewSeed)). /*random number seed*/ seed(13). /*Choose random element of list*/ random_pick(List,El) :- length(List,L), random(L,N), nth(N,List,El). /*find nth element of a list*/ nth(1,[Hd|Tl],Hd) :- !. nth(N,[Hd|Tl],El) :- N>1, !, N1 is N-1, nth(N1,Tl,El).