This is an old revision of the document!


Generisanje svih varijacija sa ponavljanjem

Varijacije sa ponavljanjem

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:

  • 000
  • 001
  • 010
  • 011
  • 100
  • 101
  • 110
  • 111

Problem

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).

varijacije.c
#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);
 
varpon.1323391413.txt.gz · Last modified: 2011/12/09 01:43 by darko.antonijevic
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki