Little combination problem

jbv jbv.silences at Club-Internet.fr
Sat May 7 10:34:55 EDT 2005



Alex,

It works great. Thank you so much for your help.
JB

> jbv wrote:
>
> >Hi list,
> >
> >I'm facing a little combination problem in which I'm getting lost...
> >
> >I have a string tof n letters (n can range from 2 to 20)
> >and I need to produce all possible combinations of n-1 to 2 letters.
> >
> >for example :
> >    string : ABCD
> >
> >
> >I'm trying to do it with nested loops but don't get anywhere...
> >
> >Any idea ?
> >
> >
> I'm sure there's a better way - but here's what I came up with ....
>
> The easy way to do it is recursively :
>
> function allsubstrs str
>   put empty into res
>   repeat with i = (the number of chars in str)-1 down to 2
>     put generate(i,str) after res
>   end repeat
>   return res
> end allsubstrs
>
> function generate M, str
>   put the number of chars in str into N
>   put empty into res
>   if M = 1 then
>     repeat for each char c in str
>       put c & cr after res
>     end repeat
>     return res
>   end if
>   repeat with  i = 1 to N-M+1
>     put generate(M-1, char i+1 to -1 of str) into temp
>     repeat for each line L in temp
>       put char i of str & L & cr after res
>     end repeat
>   end repeat
>   return res
>
> end generate
>
> It can be re-written to use loops instead of recursive calls - but it's
> more obvious this way.
>
> --
> Alex Tweedly       http://www.tweedly.net
>
> --
> No virus found in this outgoing message.
> Checked by AVG Anti-Virus.
> Version: 7.0.308 / Virus Database: 266.11.5 - Release Date: 04/05/2005
>
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/use-revolution



More information about the use-livecode mailing list