I za kraj: mozda najjednostavnije resenje je 'simulacija' resenja pomocu kolekcija.
Resenje se u biti sastoji da izbacimo neke (slucajno odabrane) elemente iz niza.
Nesto poput (pisem onako iz glave, bez provere):
Sub Foo(byRef nizA() as integer, byVal brojElemenataUIzlaznomNizu as Integer)
For i = 1 to Ubound(nizA)+1-brojElemenataUIzlaznomNizu ' koliko elemenata izbacujemo iz niza A toliko puta prolazimo kroz petlju
r=int(rnd(1)*(Ubound(nizA)+1)) ' biramo slucajni element niza A
' izbacujemo element iz niza:
For j=r to Ubound(nizA)-1
nizA(j)=nizA(j+1)
Next j
ReDim Preserve nizA(ubound(nizA)-1) ' smanjujemo velicinu niza za 1
Next i
End Sub
Mana: za svaki element koji izbacimo moramo da pomerimo sve elemente (iza tog koji izbacujemo) ulevo. Znaci moze da bude malo sporije, mada je to usporenje verovatno nesto sto se tesko da primetiti, ako se ne radi o ogromnim nizovima.
Napominjem: kod gore nije proveren, pisem ga onako 'na prvu' sto bi rekao denton.
pozdrav:)
Commercial-Free !!!