Solved

Algorithm for combination generator

Posted on 2008-06-12
5
7,466 Views
Last Modified: 2008-08-28
Hi

I'm wondering if you could give me a hand with an algorithm.

I need to write a algorithm for generating combinations from n number of sets (of integers).

I can write code that will take my fixed number of sets and produce the combinations but Im lost on how I would be able to do this for n number of sets.

I've attached code for generating combinations from a fixed number of sets.

Will appreciate anyones help or guidance.

Thanks
int[] firstSet = new int[] { 1, 2, 3, 4, 5 };
        int[] secondSet = new int[] { 6, 7, 8, 9, 10, 11 };
        int[] thirdSet = new int[] { 12, 13, 14 };
        int[] fourthSet = new int[] { 15, 16, 17, 18 };
        int counter = 0;
 
        foreach (int firstSetVariable in firstSet)
        {
            foreach (int secondSetVariable in secondSet)
            {
                foreach (int thirdSetVariable in thirdSet)
                {
                    foreach (int fourthSetVariable in fourthSet)
                    {
                        Response.Write(counter + ": " + firstSetVariable + "," + secondSetVariable + "," + thirdSetVariable + "," + fourthSetVariable + "<br />");
                        counter += 1;
                    }
                }
            }
        }

Open in new window

0
Comment
Question by:tejs1dhu
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
5 Comments
 
LVL 53

Expert Comment

by:Infinity08
ID: 21767339
If n isn't too big, you could make the algorithm recursive ...
0
 
LVL 1

Author Comment

by:tejs1dhu
ID: 21768015
Hi Infinity08

Making this recursive is the aim, however I am not sure how to implement this using C#.  Any ideas?
0
 
LVL 53

Accepted Solution

by:
Infinity08 earned 250 total points
ID: 21768291
In pseudo code it could look something like this :

        function(n, sets, combination)
            if n is max then print combination
            else
                for every element in the n-th set from sets
                    set the n-th value in the combination to that element
                    call function(n + 1, sets, combination)
                end for
            end else
        end function
0

Featured Post

Enroll in July's Course of the Month

July's Course of the Month is now available! Enroll to learn HTML5 and prepare for certification. It's free for Premium Members, Team Accounts, and Qualified Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

One of Google's most recent algorithm changes affecting local searches is entitled "The Pigeon Update." This update has dramatically enhanced search inquires for the keyword "Yelp." Google searches with the word "Yelp" included will now yield Yelp a…
When there is a disconnect between the intentions of their creator and the recipient, when algorithms go awry, they can have disastrous consequences.
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …

635 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question