Date: Sun, 14 Dec 2003 21:26:34 -0500 Sigurd Hermansen "SAS(r) Discussion" Sigurd Hermansen Re: Permutation problem To: LWn text/plain; charset="iso-8859-1"

Lars: Merry %permute(%str(D),%str(G),%str(J),%str(L),%str(O),%str(U),__n=194) Sig %macro permute(__x1,__x2,__x3,__x4,__x5,__x6,__n=); /* Create data*/ data d; do x="&__x1","&__x2","&__x3","&__x4","&__x5","&__x6"; output; end; run;

proc sql; create table permute as select d1.x||d2.x||d3.x||d4.x||d5.x||d6.x as permute from d as d1,d as d2,d as d3,d as d4,d as d5,d as d6 where index(calculated permute,"&__x1") and index(calculated permute,"&__x2") and index(calculated permute,"&__x3") and index(calculated permute,"&__x4") and index(calculated permute,"&__x5") and index(calculated permute,"&__x6") order by permute ; select monotonic() as n,* from permute where calculated n=&__n ; quit; %mend permute; %permute(%str(D),%str(G),%str(J),%str(L),%str(O),%str(U),__n=194)

-----Original Message----- From: LWn To: SAS-L@LISTSERV.UGA.EDU Sent: 12/14/2003 3:51 PM Subject: Permutation problem

This week every year I use to present a small permutation problem in two steps to my students. i) How many possible sixletter "words" can be made using the letters DGJLOU? No problem, the answer usually comes within ten seconds. ii) OK, now I want you to arrange all those 720 "words" alphabetically. What "word" is number 194?

1: DGJLOU 2: DGJLUO . 194: ?????? . 720: UOLJGD

If the students are familiar with SAS or some other programming tool I ask them to try using their computers. Here is my SAS solution. Does anybody have a more elegant solution with SAS or SPSS?

data dgjlou (keep=word) ; length i j k l m n \$ 1. ; do i='D', 'G', 'J', 'L', 'O', 'U' ; do j='D', 'G', 'J', 'L', 'O', 'U' ; do k='D', 'G', 'J', 'L', 'O', 'U' ; do l='D', 'G', 'J', 'L', 'O', 'U' ; do m='D', 'G', 'J', 'L', 'O', 'U' ; do n='D', 'G', 'J', 'L', 'O', 'U' ; word = i||j||k||l||m||n ; xx = (i=j)+(i=k)+(i=l)+(i=m)+(i=n) +(j=k)+(j=l)+(j=m)+(j=n)+(k=l) +(k=m)+(k=n)+(l=m)+(l=n)+(m=n) ; xx = 0 then output ; end ; end ; end ; end ; end ; end ; run ; ------------------------------ No 194 is GOD JUL which is Swedish for Merry Xmas!

/Lars Wahlgren Lund university, Sweden

Back to: Top of message | Previous page | Main SAS-L page