Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 10 odgovora
  • 5.344 pregleda

Najnovija ↓

Nasumicno generisanje brojeva... Kako??? 12.07.2009. u 12:02 · pre 210 meseci #1
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!
Re: Nasumicno generisanje brojeva... Kako??? 12.07.2009. u 13:03 · pre 210 meseci #4
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
Re: Nasumicno generisanje brojeva... Kako??? 12.07.2009. u 13:10 · pre 210 meseci #6
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
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Nasumicno generisanje brojeva... Kako??? 12.07.2009. u 13:27 · pre 210 meseci #8
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!
Re: Nasumicno generisanje brojeva... Kako??? 12.07.2009. u 13:39 · pre 210 meseci #9
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.
Re: Nasumicno generisanje brojeva... Kako??? 12.07.2009. u 16:14 · pre 210 meseci #10
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...
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme