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

Kombinacje bez ponavljanja...

[es] :: C/C++ programiranje :: Kombinacje bez ponavljanja...

[ Pregleda: 4326 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

svoo
Milan Svitlica
Banja Luka

Član broj: 44903
Poruke: 22
*.dialup.blic.net.



Profil

icon Kombinacje bez ponavljanja...31.05.2005. u 21:39 - pre 230 meseci
Funkcija kao argument prihvata neko polje (niz),
i cjelobrojni podatak (int k). Ona bi trebalo da vrati kombinacije bez ponavljanja k-te klase elemenata tog niza (ili bilo koje druge strukture - recimo vector<int>.) u nekom dvodimenzionalnom polju, ili da bude void ali da se polje za rezultat prenese kao argumenti.
Imam rijesenje ali me zanima dali i je moguce napisati funkciju a da nije rekurzivna. Odnosi se na one koji su mozda radili nesto slicno.

Pozdrav
 
Odgovor na temu

dragansm
Dragan Smiljanic

Član broj: 38170
Poruke: 191
212.200.125.*



Profil

icon Re: Kombinacje bez ponavljanja...31.05.2005. u 23:30 - pre 230 meseci
Jeste mozda malo vise "cimanja" napisati algoritam, ali resenje je u sustini jednostvni i pokusacu da ga "skiciram".
Posmatracemo kombinacije bez ponavljanja N elemenata P k-tog reda ili klase.
Napravi niz od k elemenata koji sadrzi indexe elmenata (idx).
idx[m] = m, m = 0 .. (k - 1)
rez[0] = Komb( idx )
while( idx[k-1] != N )
++idx[k-1]
rez[..] = Komb( idx )
end_while
++idx[k - 2]
idx[k - 1] = idx[k-2]+1
Ako je idx[k-2] != N - 1 vrati se u gornju petlju
++idx[k - 3]
idx[k-2] = idx[k-3]+1
idx[k-1] = idx[k-2]+1
Ako je idx[k-3] != N - 2 vrati se u gornju petlju
.....
Komb( idx ) vraca vektor (P[idx[0]], P[idx[1]],... P[idx[k - 1]])
Nadam se da ti je ideja jasna i da ti nece biti problem da je pretvoris u lepu citku C/C++ funkciju prigodnu za ovaj forum, mada verujem da je interesantno i tvoje rekurzivno resenje.
Za P = {A,B,C,D} i k = 2 bi trebalo da se dobije
AB, AC, AD, BC, BD, CD
Bitno je da dobro postavis uslov kad izlazis iz funkcije, a to je situacija kad je idx[0] == N - k - 1 ili tako neka vrednost koja linearno zavisi od N, k i konstante (nece ti biti problem da je sam odredis)

By the Way, ortak sa posla mi je ispricao da je nasao negde da je matem. dokazano da svaku rekur. funkciju mozes da resis bez rekurzije koriscenjem iteracije, ali ne znam link za taj sajt, gde je navodno i objasnjen sam princip kako pretvarati jedne funkcije u druge.
Pozdrav
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.dialup.neobee.net.



Profil

icon Re: Kombinacje bez ponavljanja...31.05.2005. u 23:30 - pre 230 meseci
Svaki rekurzivni problem može da se reši nerekurzivno.

Ovde je barem lako, jer se tačno zna koliko ima kombinacija k-te klase od n elemenata, pa bez problema možeš da upotrebiš najobičniju petlju.
 
Odgovor na temu

dragansm
Dragan Smiljanic

Član broj: 38170
Poruke: 191
212.200.125.*



Profil

icon Re: Kombinacje bez ponavljanja...31.05.2005. u 23:35 - pre 230 meseci
Citat:

Ovde je barem lako, jer se tačno zna koliko ima kombinacija k-te klase od n elemenata, pa bez problema možeš da upotrebiš najobičniju petlju.


Smatram da se bas ne radi o "najobicnijoj petlji" koja ide od 0 do N nad k. Cenim da mu za resenje treba dvostruka ili cak trostruka "nested" petlja. Ali, saznacemo :)
 
Odgovor na temu

Alef
Viktor Kerkez
Novi Sad

Član broj: 505
Poruke: 188
*.dialup.neobee.net.



Profil

icon Re: Kombinacje bez ponavljanja...01.06.2005. u 00:23 - pre 230 meseci
Citat:
dragansm: Smatram da se bas ne radi o "najobicnijoj petlji" koja ide od 0 do N nad k. Cenim da mu za resenje treba dvostruka ili cak trostruka "nested" petlja. Ali, saznacemo


Naravno... Ali ne mora Nek napravi jednu petlju koja ide od 0 do (N nad k - 1) i u njoj poziva funkciju koja obavi ostatak
 
Odgovor na temu

svoo
Milan Svitlica
Banja Luka

Član broj: 44903
Poruke: 22
*.dialup.blic.net.



Profil

icon Re: Kombinacje bez ponavljanja...01.06.2005. u 20:15 - pre 230 meseci
E ljudi hvala. Dovoljno mi je samo saznanje da se moze rijesiti.

Ako neko uradi ili ima uradjeno nek postuje.
Ja cu ako ova tema bude ziva postovati kod ako i kad zavrsim.

U svakom slucaju hvala.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.fsb.hr.



+9 Profil

icon Re: Kombinacje bez ponavljanja...02.06.2005. u 09:43 - pre 230 meseci
Citat:
Svaki rekurzivni problem može da se reši nerekurzivno.

Istina. Imas 13 pravila kako da rekurzivno pretvoris u nerekurzivno. Uzasno komplicirano...
 
Odgovor na temu

madamov
Milan Adamov
vlasnik
Adamov Konsultacije d.o.o.
Beograd, Srbija

SuperModerator
Član broj: 21939
Poruke: 4413
195.252.81.*

Sajt: www.adamov.rs


+138 Profil

icon Re: Kombinacje bez ponavljanja...02.06.2005. u 12:12 - pre 229 meseci
Citat:
stina. Imas 13 pravila kako da rekurzivno pretvoris u nerekurzivno. Uzasno komplicirano...


Imaš li neki link gde se mogu naći ova pravila, vrlo me interesuju?
 Certified Trainer Mojave 101 macOS Support Essentials 10.14
http://www.adamov.co.rs http://milan.adamov.rs http://www.infinitum.rs
 
Odgovor na temu

[es] :: C/C++ programiranje :: Kombinacje bez ponavljanja...

[ Pregleda: 4326 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

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