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

Nasumicno generisanje brojeva... Kako???

[es] :: Visual Basic 6 :: Nasumicno generisanje brojeva... Kako???

[ Pregleda: 3701 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Syberbob
Blazeaster
Krusevac

Član broj: 82571
Poruke: 126
89.216.231.*



+1 Profil

icon Nasumicno generisanje brojeva... Kako???12.07.2009. u 11:02 - pre 179 meseci
Kako da u sledecem kodu dodam mogucnost da preskoci odredjene brojeve???

Code:
Public Function Rand(ByVal Low As Long, _
                     ByVal High As Long) As Long
                    
    Randomize
  Rand = Int((High - Low + 1) * Rnd) + Low
  
  
End Function


Hvala!
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.adsl.eunet.rs.

Sajt: www.vasictech.net


+1 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 11:06 - pre 179 meseci
Proveravaj u toku funkcije sa IF koju vrednost varijabla Rand ima, pa ako je vrednost neki od brojeva koji ne zelis, vrati f-ju na pocetak.
 
Odgovor na temu

Syberbob
Blazeaster
Krusevac

Član broj: 82571
Poruke: 126
89.216.231.*



+1 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 11:46 - pre 179 meseci
Da ali sta ako funkcija ponovo generise isti broj?
 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.adsl.eunet.rs.

Sajt: www.vasictech.net


+1 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 12:03 - pre 179 meseci
Pa ako bude generisala isti broj vrtece se u krug dok ne napravi odgovarajuci :)

Code:
Public Function Rand(ByVal Low As Long, _
                     ByVal High As Long) As Long
FunctionStart:                    
    Randomize
  Rand = Int((High - Low + 1) * Rnd) + Low

  If Rand = 3 Then Goto FunctionStart
  
End Function


Evo ti primer, ako je broj 3, vraca se na pocetak
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 12:07 - pre 179 meseci
Šta baš moraš koristiti goto naredbu? :-D
F
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 12:10 - pre 179 meseci
goto, 2009. godina, wtf??
Code:

Public Function Rand(ByVal Low As Long, _
                     ByVal High As Long) As Long

  ' Randomize <-- ovo prebaci u entry point aplikacije (Sub Main, ili Sub Form_Load)

  Dim ret As Long

  Do
     ret = Int((High - Low + 1) * Rnd) + Low
  While ret = 3

  Rand = ret
  
End Function

 
Odgovor na temu

Aleksandar Vasic
Web Administrator, Uspon d.o.o
Čačak

Član broj: 91692
Poruke: 1226
*.adsl.eunet.rs.

Sajt: www.vasictech.net


+1 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 12:11 - pre 179 meseci
Jes da GoTo nije fensi, al to mi prvo palo na pamet :D
 
Odgovor na temu

Syberbob
Blazeaster
Krusevac

Član broj: 82571
Poruke: 126
89.216.231.*



+1 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 12:27 - pre 179 meseci
Code:
Pa ako bude generisala isti broj vrtece se u krug dok ne napravi odgovarajuci :)

Posto ima 42 broja sanse da se dobije rezultat su mozda 1:1000 :D.
Code:

Public Function Rand(ByVal Low As Long, _
                     ByVal High As Long) As Long

  ' Randomize <-- ovo prebaci u entry point aplikacije (Sub Main, ili Sub Form_Load)

  Dim ret As Long

  Do
     ret = Int((High - Low + 1) * Rnd) + Low
  While ret = 3

  Rand = ret
  
End Function

Probacu ovo tnx!
 
Odgovor na temu

Syberbob
Blazeaster
Krusevac

Član broj: 82571
Poruke: 126
*.dynamic.sbb.rs.



+1 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 12:39 - pre 179 meseci
I ovo mi isto ne funkcionise. Kompjuter ponavlja funkciju pokusavajuci da dobije kombinaciju, sto je prakticno nemoguce i program samo blokira. Treba mi neko resenje koje ce iskljuciti mogucnost izbacivanja brojeva koje unesem.
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Nasumicno generisanje brojeva... Kako???12.07.2009. u 15:14 - pre 179 meseci
pazi, da ne izbacuje ponekad iste rezultate algoritam ne bi bio random, zar ne? (tj pseudo-random, u ovom slucaju) pod random se podrazumeva da moze da vrati bilo koji broj.

ako sam razumeo sta hoces, tebi u stvari treba niz brojeva koji je nasumicno izmesan (shuffle-ovan), to mesanje radis otprilike ovako (mozda ne proradi iz prve, odavno nisam nista radio u vb):
Code:

Sub ShuffleArray(ByRef numbers() AS Long)
  Dim min As Long
  Dim max As Long
  Dim tmp As Long
  Dim i As Long
  Dim k As Long
  min = LBound(numbers)
  max = UBound(numbers)
  For i = min To max
    k = Int((max - min + 1) * Rnd) + min
    tmp = numbers(k)
    numbers(k) = numbers(i)
    numbers(i) = tmp
  Next
End Sub

samo prosledis niz ovoj metodi i ona ce da ga promesa, posle iz tog niza vadis brojeve pomocu nekog brojaca koji ide od LBound do UBound tog niza, kad dodjes do kraja, mozes da promesas ponovo niz, ili da generises novi...
 
Odgovor na temu

Syberbob
Blazeaster
Krusevac

Član broj: 82571
Poruke: 126
*.dynamic.sbb.rs.



+1 Profil

icon Re: Nasumicno generisanje brojeva... Kako???13.07.2009. u 11:54 - pre 179 meseci
Hvala na pomoci uspeo sam ovo da uradim.
 
Odgovor na temu

[es] :: Visual Basic 6 :: Nasumicno generisanje brojeva... Kako???

[ Pregleda: 3701 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

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