Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Algorithm for combination generator

Posted on 2008-06-12
5
Medium Priority
?
7,472 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 1000 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

Learn how to optimize MySQL for your business need

With the increasing importance of apps & networks in both business & personal interconnections, perfor. has become one of the key metrics of successful communication. This ebook is a hands-on business-case-driven guide to understanding MySQL query parameter tuning & database perf

Question has a verified solution.

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

Iteration: Iteration is repetition of a process. A student who goes to school repeats the process of going to school everyday until graduation. We go to grocery store at least once or twice a month to buy products. We repeat this process every mont…
Prime numbers are natural numbers greater than 1 that have only two divisors (the number itself and 1). By “divisible” we mean dividend % divisor = 0 (% indicates MODULAR. It gives the reminder of a division operation). We’ll follow multiple approac…
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…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…

730 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