[ unisoft @ 26.04.2009. 14:23 ] @
Problem je sledeci ( odnosi se na generisanje slucajnih brojeva )

za generisanje SLUCAJNIH pozitivnih brojeva koristimo formulu (50*Rnd)+1 - ovo nam generise slucajne brojeve izmedju 1 i 50.

Mene zanima kako da generisem slucajne brojeve izmedju na primer -50 i 20.
[ Jpeca @ 26.04.2009. 18:42 ] @
Kao što možeš naći ovde http://www.elitesecurity.org/t356641-0#2214158
Slučajan broj u opsegu lowerBound..upperBound dobiješ:

rndValue = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound)) + 1

Ovde se radi o generisanju celih brojeva. Ukoliko je potrebno generisati realne brojeve, verovatno ćeš se snaći da sam prilagodiš formulu.
[ unisoft @ 26.04.2009. 20:35 ] @
Moze malo objasnjenje.Ovo upperbound i lowerbound su promenjlive kojima mi dodeljijemo vrednosti,min i max za random ili su pak REZERVISANE RECI VBA.

Konkretno ocu da generisem slucajan broj izmedju -24 i 13.
rndValue = CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound)) + 1
pa jel bi trebalo ovako da lizgleda

rndValue = CInt(Int((-24-13+ 1) * Rnd() + -13)) + 1

[ Gohy @ 02.05.2009. 00:02 ] @

Evo prostog primera za opseg od -50 do 20:

Round(Rnd * (20 - (-50)) + (-50),0)

Rnd * (max-(min)) + (min) ili Rnd*70-50

Znaci Random funkcija generiše slučajne brojeve od 0 do 1, pa iz primera mozemo pešaka proveriti:
1. 1 * 70 -50 = 20
2. 0 * 70 -50 = -50
3. 0,999999 * 70 -50 = 19,99993
4. 0,542899 * 70 -50 = -11,99707
5. 0,000001 * 70 -50 = -49,99993

Funkcija Round je tu da zaokruži broj na željeni broj decimala (u primeru je nula za ceo broj)
[ unisoft @ 02.05.2009. 12:21 ] @
Sta da kazem.HVALA