comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Fastest way to list combinations
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Fastest way to list combinations [message #80810] Mon, 16 July 2012 03:12
antar3s86 is currently offline  antar3s86
Messages: 8
Registered: June 2012
Junior Member
> You could try COMBIGEN in JBIU.
>
> http://astroconst.org/jbiu/jbiu-doc/math/combigen.html
>
> -Jeremy.

That's the way to go I think! :)

Thanks
Re: Fastest way to list combinations [message #80811 is a reply to message #80810] Sun, 15 July 2012 08:23 Go to previous message
Jeremy Bailin is currently offline  Jeremy Bailin
Messages: 618
Registered: April 2008
Senior Member
On 7/13/12 6:21 PM, antar3s86@gmail.com wrote:
> Hi
>
> I have to solve a problem which includes listing all possible combinations to form a triplet for a given number of objects.
>
> Say you have the objects:
> a,b,c,d,e, so in total 5 which gives you 5!/(2!*3!) = 10 possibilities to list them without any doubles:
>
> abc
> abd
> abe
> acd
> ace
> ade
> bcd
> bce
> bde
> cde
>
> I have solved this problem for any number (well up to some computer limit anyway) in three FOR loops but for large numbers this is rather small...
>
> can you think of a better way than using loops to list all these possibilites?
>
> thanks!!
> :)

You could try COMBIGEN in JBIU.

http://astroconst.org/jbiu/jbiu-doc/math/combigen.html

-Jeremy.
Re: Fastest way to list combinations [message #80820 is a reply to message #80811] Fri, 13 July 2012 14:28 Go to previous message
Paul Van Delst[1] is currently offline  Paul Van Delst[1]
Messages: 1157
Registered: April 2002
Senior Member
Hello,

On 07/13/12 16:51, antar3s86@gmail.com wrote:
> Hi
>
> I have to solve a problem which includes listing all possible combinations to form a triplet for a given number of objects.
>
> Say you have the objects:
> a,b,c,d,e, so in total 5 which gives you 5!/(2!*3!) = 10 possibilities to list them without any doubles:
>
> abc
> abd
> abe
> acd
> ace
> ade
> bcd
> bce
> bde
> cde
>
> I have solved this problem for any number (well up to some computer limit anyway) in three FOR loops but for large numbers this is rather small...
>
> can you think of a better way than using loops to list all these possibilites?
>
> thanks!!
> :)

Dunno if it's the fastest and/or best way, but have a look at:
http://ftp.emc.ncep.noaa.gov/jcsda/CRTM/idl/
There should be three files.

If you look at the test_combination.pro you will see how to use it.

For example, getting a list of all the combos of three letters from 26:

IDL> t=systime(1) & Test_Combination, 26, 3 & print, systime(1)-t
...lots and lots of output listing the combinations....
22 23 25
22 24 25
23 24 25
Total combinations: 2600
0.032832861
IDL>

You could use this sort of output to generate index arrays to extract your combination of letters from string arrays.

Anyhoo, hope they're useful.

cheers,

paulv

p.s. There may be a native solution for this as well. I wrote those routines a while back... perhaps even as an
exercise. Can't recall.
Re: Fastest way to list combinations [message #80823 is a reply to message #80820] Fri, 13 July 2012 14:01 Go to previous message
antar3s86 is currently offline  antar3s86
Messages: 8
Registered: June 2012
Junior Member
On Friday, July 13, 2012 10:51:41 PM UTC+2, (unknown) wrote:
> Hi
>
> I have to solve a problem which includes listing all possible combinations to form a triplet for a given number of objects.
>
> Say you have the objects:
> a,b,c,d,e, so in total 5 which gives you 5!/(2!*3!) = 10 possibilities to list them without any doubles:
>
> abc
> abd
> abe
> acd
> ace
> ade
> bcd
> bce
> bde
> cde
>
> I have solved this problem for any number (well up to some computer limit anyway) in three FOR loops but for large numbers this is rather small...
>
> can you think of a better way than using loops to list all these possibilites?
>
> thanks!!
> :)

Sorry, instead of small it should say slow...stupid autocorrect... ;)
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: anything new?
Next Topic: Write on p=plot(....) something like a+-b

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 11:40:33 PDT 2025

Total time taken to generate the page: 0.00629 seconds