Combination Examples - GNU Scientific Library -- Reference Manual
Description: GNU Scientific Library -- Reference Manual

Next: Combination References and Further Reading, Previous: Reading and writing combinations, Up: Combinations

### 10.7 Examples

The example program below prints all subsets of the set {0,1,2,3} ordered by size. Subsets of the same size are ordered lexicographically.

         #include <stdio.h>
         #include <gsl/gsl_combination.h>

         int
         main (void)
         {
           gsl_combination * c;
           size_t i;

           printf ("All subsets of {0,1,2,3} by size:\n") ;
           for (i = 0; i <= 4; i++)
             {
               c = gsl_combination_calloc (4, i);
               do
                 {
                   printf ("{");
                   gsl_combination_fprintf (stdout, c, " %u");
                   printf (" }\n");
                 }
               while (gsl_combination_next (c) == GSL_SUCCESS);
               gsl_combination_free (c);
             }

           return 0;
         }

Here is the output from the program,

         $ ./a.out
         All subsets of {0,1,2,3} by size:
         { }
         { 0 }
         { 1 }
         { 2 }
         { 3 }
         { 0 1 }
         { 0 2 }
         { 0 3 }
         { 1 2 }
         { 1 3 }
         { 2 3 }
         { 0 1 2 }
         { 0 1 3 }
         { 0 2 3 }
         { 1 2 3 }
         { 0 1 2 3 }

All 16 subsets are generated, and the subsets of each size are sorted lexicographically.

The GNU Scientific Library - a free numerical library licensed under the GNU GPL
Back to the GNU Scientific Library Homepage