Definicija: Varijacije sa ponavljanjem skupa An od n elemenata k-te klase je svaka uređena k-torka skupa An.
Primer: Neka je dat skup A={0,1} sa 2 elementa. Varijacije sa ponavljanjem 3. klase su:
Potrebno je napisati program koji za zadati skup A i klasu k generiše sve varijacije sa ponavljanjem tog skupa. Program treba da radi za bilo koji tip podataka (slova, brojevi, reči, rečenice).
#include <stdio.h> #include <stdlib.h> void varijacije(int n,int k,int pozicija, int niz[],int ubacen[]) { int i; if (pozicija > k) { for (i=1;i<k+1;i++) printf("%d ",niz[i]); printf("\n"); } else { for (i=1;i<n+1;i++) { if (ubacen[i]==0) { niz[pozicija]=i; varijacije(n,k,pozicija+1,niz,ubacen); } } } } main() { int *niz; int n,k; printf("n= \n"); scanf("%d",&n); printf("k=\n"); scanf("%d",&k); niz=(int *)malloc(n*sizeof(int)); ubacen=(int*)calloc(n+1,sizeof(int)); varijacije(n,k,1,niz,ubacen);