Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Permutacije s ponavljanjem zadanog skupa

[es] :: C programiranje :: C za početnike :: [Zadatak] Permutacije s ponavljanjem zadanog skupa

[ Pregleda: 386 | Odgovora: 2 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

antonio_87

Član broj: 184798
Poruke: 1
*.dynamic.amis.hr.



Profil

icon [Zadatak] Permutacije s ponavljanjem zadanog skupa14.06.2008. u 21:35

Jel zna netko funkciju kojom se mogu dobit sve permutacije s ponavljanjem zadanog skupa?
dakle neka je zadan skup 0,1:
01
10
11
00
za 1,2,3:
123
132
213
231
321
312
111
222
333
122
122
112
133
.....

ako netko zna kako to programski ostvarit bio bi zahvalan jer mi je hitno.
14.06.2008. u 21:35 

glorius
Damir Nikolic
Developer, Seavus D.O.O.
YU

Član broj: 4366
Poruke: 250
77.46.224.*



Profil

icon Re: [Zadatak] Permutacije s ponavljanjem zadanog skupa17.06.2008. u 21:39
Well, koliko se secam, obrazac bi trebao da bude:

n^n ( n na n-ti )

Inace, opsti obrazac je n^r ( npr. neka je n broj clanova skupa, a r broj clanova koji ce se 'vrteti' )...

----------------------------

Primer:

skup - 1, 2 , 3
r = 2

1, 2
2, 1
1, 3
3, 1
2, 3
3, 2
1, 1
2, 2
3, 3

Ukupno 9 ( 3^2 = 9 )

----------------------------


Code:


long Izracunaj(long n, long r)
{
     long rez = 1;

     for(int i=0;i<r;i++)
         rez *= n;

     return rez;
}


EOF
17.06.2008. u 21:39 

Mali Misha
Mihajlo Anđelković

Član broj: 79396
Poruke: 313
78.90.101.*

ICQ: 195487525


Profil

icon Re: [Zadatak] Permutacije s ponavljanjem zadanog skupa24.06.2008. u 21:38
Prvo, ako ne mešaš uvek nizove uzastopnih brojeva (tj. može se raditi i o nizu poput {2,1000,201,5,15}), trebao bi da izlazne brojeve čuvaš u odvojenom nizu, a pri računu barataš sa indeksima. I kako. Recimo da imaš četri broja, dakle praviš četvoročlani niz, i postaviš mu sve vrednosti na 0. To je prva kombinacija. Onda prvi uvećaš za 1, pa proveriš da li je prekoračio dozovoljeni indeks. Ako jeste, postaviš ga na opet na nulu, a sledeći indeks uvećaš za jedan pa onda za njega izvršiš proveru. Uvek uvećavaš samo prvi indeks pa onda ostale po potrebi. Algoritam se završava kad poslednji indeks prekorači dozvoljenu vrednost, a u suprotnom (algoritam se nije završio) si dobio sledeću kombinaciju. To je to.

*izmena*
Pih, imaš sreće. Omaklo mi se da napišem ovo.

[Ovu poruku je menjao Mali Misha dana 24.06.2008. u 23:00 GMT+1]
Dim di dam...
Prikačeni fajlovi
24.06.2008. u 21:38 

[es] :: C programiranje :: C za početnike :: [Zadatak] Permutacije s ponavljanjem zadanog skupa

[ Pregleda: 386 | Odgovora: 2 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.