#include #define MAXN 50 char a[MAXN]; int perm_no=0; int verbose=0; /* perm(i,n): gera todas as permutacoes dos elementos a[i],...,a[n-1]. se i=n-1, apenas imprime o vetor a[]; caso contrario, permuta os elementos a[i],...,a[n-1] e, quando termina, a trecho a[i..n-1] do vetor esta como originalmente */ void perm(int i, int n) { if (i==n-1) { int k; printf("Perm. number %3d: ", ++perm_no); for (k=0; k[jaca:/home/mac/yoshi/sgb/Mols] > all_perms2 -n4 -v Perm. number 1: abcd Current permutation: abcd Perm. number 2: abdc Current permutation: abcd Current permutation: abcd Perm. number 3: acbd Current permutation: acbd Perm. number 4: acdb Current permutation: acbd Current permutation: abcd Perm. number 5: adcb Current permutation: adcb Perm. number 6: adbc Current permutation: adcb Current permutation: abcd Current permutation: abcd Perm. number 7: bacd Current permutation: bacd Perm. number 8: badc Current permutation: bacd Current permutation: bacd Perm. number 9: bcad Current permutation: bcad Perm. number 10: bcda Current permutation: bcad Current permutation: bacd Perm. number 11: bdca Current permutation: bdca Perm. number 12: bdac Current permutation: bdca Current permutation: bacd Current permutation: abcd Perm. number 13: cbad Current permutation: cbad Perm. number 14: cbda Current permutation: cbad Current permutation: cbad Perm. number 15: cabd Current permutation: cabd Perm. number 16: cadb Current permutation: cabd Current permutation: cbad Perm. number 17: cdab Current permutation: cdab Perm. number 18: cdba Current permutation: cdab Current permutation: cbad Current permutation: abcd Perm. number 19: dbca Current permutation: dbca Perm. number 20: dbac Current permutation: dbca Current permutation: dbca Perm. number 21: dcba Current permutation: dcba Perm. number 22: dcab Current permutation: dcba Current permutation: dbca Perm. number 23: dacb Current permutation: dacb Perm. number 24: dabc Current permutation: dacb Current permutation: dbca Current permutation: abcd Final perm.: abcd <3>[jaca:/home/mac/yoshi/sgb/Mols] > ====================================================================== #include #define MAXN 50 int a[MAXN]; int subset_no=0; int verbose=0; int n=4; int k=2; void subsets(int i, int j) { if (i==n) { int l; printf("%d-subset number %3d: ", k, ++subset_no); for (l=0; lj) { a[i]=0; subsets(i+1,j); } if (j>0) { a[i]=1; subsets(i+1,j-1); } } } void set_up() { int l; for (l=0; l[jaca:/home/mac/yoshi/sgb/Mols] > k_subsets -n6 -k3 3-subset number 1: 000111 3-subset number 2: 001011 3-subset number 3: 001101 3-subset number 4: 001110 3-subset number 5: 010011 3-subset number 6: 010101 3-subset number 7: 010110 3-subset number 8: 011001 3-subset number 9: 011010 3-subset number 10: 011100 3-subset number 11: 100011 3-subset number 12: 100101 3-subset number 13: 100110 3-subset number 14: 101001 3-subset number 15: 101010 3-subset number 16: 101100 3-subset number 17: 110001 3-subset number 18: 110010 3-subset number 19: 110100 3-subset number 20: 111000 <4>[jaca:/home/mac/yoshi/sgb/Mols] >