RE: Permutation function

new topic     » goto parent     » topic index » view thread      » older message » newer message

The last contest in Euphoria was exactly on this subject (at least the
intermediate difficulty one): find all English words with a pattern (with
more options than the ones you wish).
----- Original Message -----
From: <favreje at yahoo.com>
Subject: RE: Permutation function


>
> Thanks Trick... I'd love to see the code you have.  I found a website on
> permutation theory.  So I'm learning all about cycles, orbits,  and
> products of transpositions.  It always helps to understand why the code
> works, eh?
>
> Seems like the time/space constraints come into play more when I check a
> given permuation against the dictionary.  But there should be a way to
> reject entire series, or cycles of permuations outright (maybe based on
> a hash function) by determining that no english words begin a particular
> 3 letter sequence?  I'm still thinking it through.
>
>
> mistertrik at hotmail.com wrote:
> >
> > Well, if they're real words, then I'm guessing you want to know what
> > words
> > you can make given the available tiles.
> >
> > That's exactly what my code does, and a lot more efficiently too. I
> > don't
> > care how fast your code is, it takes a while to generate 3.6 million
> > permutations, and it uses a lot of space.
> >
> > If you can wait a few hours, I'll send it to you once I get home.
> > =====================================================
> > .______<-------------------\__
> > / _____<--------------------__|===
> > ||_    <-------------------/
> > \__| Mr Trick
> >
> >
> > >From: favreje at yahoo.com
> > >Reply-To: EUforum at topica.com
> > >To: EUforum <EUforum at topica.com>
> > >Subject: Re: Permutation function
> > >Date: Tue, 12 Nov 2002 17:53:53 -0800 (PST)
> > >
> > >
> > >Actually, I am generating permutations for the fun of it! (kinda sick,
> > >eh?).  I'm writing a scrabble-like word-play game (primarily to
> > >familiarize
> > >myself with Euphoria) that makes matrices of words no longer than 10
> > >characters in length.  The permutation algorithm supports the computer
> > >player's generation of words.  (With only 10 characters per word, and a
> > >good hash function, I should be able to handle the 3.6 million possible
> > >results, right?)
> > >
> > >
> > >I have a funky bit of code at home (at work now) that can find words
> > >that
> > >can be made from a given sequence of letters.
> > >That uses a permutation function of sorts. What is this function wanted
> > >for?
> > >
> > >I remember the first way I went about doing things was to generate a
> > >permutation, then try and match it to the dictionary. This is *NOT* a
> > >good
> > >way of doing things. The number of permutations to word length ramps up
> > >VERY
> > >quickly. if you have a 15 length sequence, there are roughly 100
billion
> > >permutations. Not good.
> > >
> > >I'm assuming you're not generating permutations for the fun of it.
> > >Perhaps
> > >you can tell us what this permutation function is for?
> > >=====================================================
> > >.______<-------------------\__
> > >/ _____<--------------------__|===
> > >||_ <-------------------/
> > >\__| Mr Trick
> > >
> > >
> > > >From: thomas at columbus.rr.com
> > > >Reply-To: EUforum at topica.com
> > > >To: EUforum
> > > >Subject: Permutation function
> > > >Date: Tue, 12 Nov 2002 20:12:39 -0500
> > > >
> > > >
> > > >I read an e-mail about somebody looking for permutations.. Sorry, I'm
a
> > > >bit short on time so I won't have a chance to look for that e-mail or
> > > >test out the code thoroughly (though my quick test shows that it
works).
> > > >Here is a little function that I have been using to find
permutations.
> > > >You call it with the set of characters you want to be used (ex: {'A',
> > > >'B', 'C'} or {'1', '2', '3'}) and the length of each permutation (ex:
3,
> > > >6, 9).
> > > >
> > > >It's not the most optimized function in the world, but so far I
haven't
> > > >had any problems. I was recently working with the code, so it may not
> > > >work exactly right (sorry!). I thought if I sent it to the list I
could
> > > >get some c&c on it. Tell me what you think!
> > > >
> > > >~Tom
> > > >
> > > >-- code --
> > > >function GetPermutations( sequence characters, atom len )
> > > > sequence final, combo
> > > > integer chars
> > > > atom doit doit = 1
> > > > final = {}
> > > > combo = repeat(1, len)
> > > > chars = length(characters)
> > > > while doit do
> > > > final = append(final, combo)
> > > > combo[1] += 1
> > > > for i = 1 to len do
> > > > if combo[i] > chars then
> > > > if i = len then
> > > > combo[i] = chars
> > > > final = append(final, combo)
> <snip>
>
>
>
>

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu