is among - problem

Geoff Canyon gcanyon at inspiredlogic.com
Sat Nov 22 03:19:01 EST 2003


So the first question is, you have a list of three digit numbers, some 
of which are transposed copies of each other. You want to filter the 
list so that any transposed duplicates are removed. This should work:

   put empty into tNewList
   repeat for each line L in tList
     put sortChars(L) into tCandidate
     if tHitList[tCandidate] is not empty then next repeat
     put 1 into tHitList[tCandidate]
     put L & return after tNewList
   end repeat

function sortChars p
   put empty into r
   repeat for each char c in p
     put c & comma after r
   end repeat
   sort items of r
   replace comma with empty in r
   return r
end sortChars

On to the second problem, which is really the first since you wouldn't 
have the above problem to solve if you could generate the answer to the 
below directly. This code should do the trick. It produces a list of 35 
three-digit numbers, which we'll verify as the right number:

on mouseUp
   put empty into tList
   repeat with i = 1 to 5
     repeat with j = i + 1 to 6
       repeat with k = j + 1 to 7
         put i & j & k & cr after tList
       end repeat
     end repeat
   end repeat
   put tList
end mouseUp

It's hard-coded, but for this case that isn't much of an issue. To 
verify that there are 35 solutions, consider that this problem 
translates to: choose three numbers from the set "1,2,3,4,5,6,7" To 
solve that, find 7C3, which is (7*6*5)/(3*2*1) That's 210/6, or 35

regards,

Geoff Canyon
gcanyon at inspiredlogic.com

On Nov 21, 2003, at 5:59 PM, Thomas J McGrath III wrote:

> A group of three items from the list 1,2,3,4,5,6,7 with no duplicates 
> in any order = 123 but no 213 or 312 or 231 or 321 and no doubles or 
> triples = 111 or 112 or 323 or 322 etc. (WOW my daughter is only 13 
> and this in my opinion is complex until I figured it out)



More information about the Use-livecode mailing list