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

[Zadatak] Permutacije s ponavljanjem zadanog skupa

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

[ Pregleda: 4045 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

antonio_87
student

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



Profil

icon [Zadatak] Permutacije s ponavljanjem zadanog skupa14.06.2008. u 21:35 - pre 193 meseci
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.
 
Odgovor na temu

glorius
Damir Nikolic
C++ developer
SR

Član broj: 4366
Poruke: 428
77.46.224.*

ICQ: 208550327


+14 Profil

icon Re: [Zadatak] Permutacije s ponavljanjem zadanog skupa17.06.2008. u 21:39 - pre 193 meseci
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
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
78.90.101.*

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: [Zadatak] Permutacije s ponavljanjem zadanog skupa24.06.2008. u 21:38 - pre 192 meseci
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]
Ipak se ++uje.
Prikačeni fajlovi
 
Odgovor na temu

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

[ Pregleda: 4045 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

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