[ vuchko.vuchko @ 23.05.2011. 19:36 ] @
Ljudi pomagajte zapeo sam...

Imam jedan skup npr. {1,2,3,4} , e sad treba da isipisem sve brojeve koji pocinju sa npr. 1. pa treba da dobijem:

Code:
1
12,13,14
123,124,134
1234


E to sad i ne bi bio problem, zavrtim to kroz 4 petlje i eto ga, ali kako to napraviti za skup od n brojeva, a da ne vrtim kroz n petlji :-( ?
[ Shadowed @ 23.05.2011. 21:47 ] @
Mogao bi rekurzijom. Za svaki element niza imas njega + ta ista funkcija sa nizom bez tog elementa.
[ vuchko.vuchko @ 23.05.2011. 22:24 ] @
Nisam bas razumio?
[ Shadowed @ 23.05.2011. 22:44 ] @
Huh, nemam vb, a nije bas da se secam sintakse dovoljno da bih ovako napamet.. Probacu malo detaljnije opisno.
Dakle, imas funkciju koja prima niz brojeva.
Ides For Each kroz taj niz. Unutar foreach ispisujes taj broj i pozivas ponovo tu funkciju sa novim nizom koji je prekopiran stri samo sa izbacenim trenutnim brojem.

Jedino je malo smor sto moras praviti nove nizove ali sta je tu je :)

Aj' ako se nismo skontali jos uvek, javi pa cu ispisati kod.
[ vuchko.vuchko @ 24.05.2011. 23:20 ] @
Jos ja nisam provalio taj tvoj fazon, al smisljam neki svoj, sa nekim brojacima. Sad imam nov problem kada zelim redimenzionisati svoj niz izbacuje mi gresku "out of memory", ali to je off topic :(

Code:
Dim niz()

Private Sub Command1_Click()
Dim BrClanova As Double
BrClanova = 2 ^ 30
ReDim niz(BrClanova, 1)
End Sub


E sad znam ja da je 2 na 30-tu zaista puno, al mi treba toliki niz pa cak i veci i do 2 na 200, jel ima kakavo rjesenje?
[ Shadowed @ 25.05.2011. 06:46 ] @
Cek, ti hoces da ispies sve kombinacije elemenata niza sa 2^30 clanova? To ce trajati kao pronalazenje odgovora na pitanje zivota vaseljene i svega ostalog :)
I 30 clanova je mnogo a kamoli 2^30.

Code:

Private sub IspisiKombinacije(niz as integer())
    if len(niz) > 0 then
        for i = 1 to len(niz)
            console.write(len(i))
            dim NoviNiz as Integer(len(niz)-1)
            'kopiraj sve clanove iz niz u NoviNiz osim i-tog clana
            IspisiKombinacije(NoviNiz)
        next
    else
        console.writeline("")
    end if
end sub


Verovatno sam ponegde izgresio u sintaksi i ovo kopiranje niza nisam uradio, ali valjda je dovoljno da se shvati poenta :)
Znam da u vb6 nema console, al' umesto toga stavi sta ti vec odgovara.