//Session file SetLogFile("adj.log": Overwrite := true); //adjacency counter numADJ := function(sd); s := 0; n := #sd; for i := 1 to n-1 do if Abs(sd[i]-sd[i+1]) eq 1 then s := s+1; end if; end for; return s; end function; //define deck, set up "shuffle group" udeck := [1,2,3,4,5]; G := SymmetricGroup(5); //average number of adjacencies nadj := 0; for pi in G do nadj := nadj+numADJ(udeck^(pi^(-1))); end for; avgADJ := nadj/#G; print "avgADJ = " , avgADJ; //probability of an adjacency a := 0; for pi in G do if numADJ(udeck^(pi^(-1))) gt 0 then a := a+1; end if; end for; probADJ := a/#G; print "probADJ = ",probADJ; //End Session UnsetLogFile();