/*random*/ /*Random number generator Alan Bundy 22.11.79*/ /*Get random Num in Range*/ random(Range,Num) :- seed(Seed), random(Range,Seed,Num). /*Get Num ffrom Seed first time*/ random(Range,Seed,Num) :- Num is (Seed mod Range) + 1. /*Grow Num on subsequent occasions*/ random(Range,Seed,Num) :- NewSeed is 125*Seed + 1, random(Range,NewSeed,Num). /*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).