abc Programski jezik BASIC
Slučajan broj /RANDOM/ - funkcija RND

Računar generiše slučajne vrijednosti od 0 do 1 [0,1).
Interval [0,1) Interval  [0,max) Interval  [min,max)
y = x - linearna funkcija y = kx - linearna funkcija y = kx + l - linearna funkcija
  max = k*1
k = max
min = k*0 + l
min = l
l = min  - početna vrijednost

max = k*1 + l
max = k + min
k = max - min - koeficijent
y = x
y = RND
y = kx
y = max * RND
y = kx + l
y = (max - min) * RND + min
 
Slika 1. Vrijednost = max * rnd
Slika 3. Vrijednost = (max-min) * rnd + min
     
 
Slika 2. Vrijednost = max * rnd
Slika 4. Vrijednost = (max-min) * rnd + min

Primjeri

Primjer Opis Listing programa Ispis na ekranu
1. Generisanje realnih brojeva [0 - 5)
REM Generisanje realnih brojeva [0 - 5)
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
n = 5 * RND: REM generisani broj od 0 do 5; max * RND 
PRINT "Realan broj [0 - 5): "; n: REM ispis brojeva 1 - 5
Realan broj [0 - 5): 0.645723
2. Generisanje realnih brojeva [1 - 5)
REM Generisanje realnih brojeva [1 - 5)
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
n = 4 * RND + 1: REM generisani broj od 1 do 5; (max - min)RND + min
PRINT "Realan broj [1 - 5): "; n: REM ispis brojeva 1 - 5
Realan broj [1 - 5): 2.124053
3. Deset realnih brojeva u opsegu [0 - 5)
REM Deset realnih brojeva u opsegu [0 - 5)
PRINT "Deset realnih brojeva u opsegu [0 - 5)"
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
FOR i = 1 TO 10
    n = 5 * RND: REM generisani broj od 0 do 5); max * RND 
    PRINT n: REM ispis brojeva 0 - 5
NEXT i
Deset realnih brojeva u opsegu [0 - 5)
1.514617
1.166098
3.912994
0.307786
0.773762
1.908384
4.685275
1.999719
2.312921
3.252833    

Za cijele brojeve i uključivnje gornje granice dodaje se 1; (max+1) Interval [0, max]

Interval [0, max] Donja granica: min Gornja granica: max+1-min Naredba - cijeli brojevi
[0, 9] - jednocifreni brojevi 0 9 + 1 = 10 n = INT(10 * RND)
[10, 99] - dvocifreni brojevi 10 99 + 1 - 10 = 90 n = INT(90 * RND) + 10
[100, 999] - trocifreni brojevi 100 999 + 1 - 100 = 900 n = INT(900 * RND) + 100
[100, 999] - četverocifreni brojevi 1000 9999 + 1 - 1000 = 9000 n = INT(9000 * RND) + 1000

Primjeri

Primjer Opis Listing programa Ispis na ekranu
1. Generisanje jednocifrenog broja [0, 9]
REM Generisanje jednocifrenog broja
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
n = INT(10 * RND): REM generisani jednocifreni broj max +1
PRINT "Jednocifren broj: "; n: REM ispis broja
Jednocifren broj: 3
2. Generisanje dvocifrenog broja [10, 99]
REM Generisanje dvocifrenog broja
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
n = INT(90 * RND) + 10: REM generisani dvocifreni broj;  (max - min)rnd + min
PRINT "Dvocifren broj: "; n: REM ispis broja
Dvocifren broj: 57
3. Generisanje cetverocifrenog broja [100, 999]
REM Generisanje trocifrenog broja
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
n = INT(900 * RND + 100): REM generisani trocifreni broj;  (max - min)rnd + min
PRINT "Trocifren broj: "; n: REM ispis broja
Trocifren broj: 342
4. Generisanje cetverocifrenog broja [1000, 9999]
REM Generisanje cetverocifrenog broja
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
n = INT(9000 * RND  + 1000): REM generisani cetverocifreni broj; (max - min)rnd + min
PRINT "Cetverocifren broj: "; n: REM ispis broja
Cetverocifren broj: 2795
5. Generisanje brojeva [0 - 5]
REM Generisanje brojeva 0 - 5
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
n = INT(6 * RND) : REM generisani broj od 1 do 5; max
PRINT "Broj [0 - 5]: "; n: REM ispis brojeva 1 - 5
Broj [0 - 5]: 4
6. Generisanje brojeva [1 - 5]
REM Generisanje brojeva 1 - 5
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
n = INT(5 * RND + 1): REM generisani broj od 1 do 5; (max - min)rnd + min
PRINT "Broj [1 - 5]: "; n: REM ispis brojeva 1 - 5
Broj [1 - 5]: 2
7. Generisanje deset cijelih brojeva [1 - 5]
REM Generisanje deset cijelih brojeva 1 - 5
PRINT "Deset cijelih brojeva u opsegu [0 - 5]"
RANDOMIZE TIMER: REM Omogucuje nove brojeve pri svakom startanju programu
FOR i = 1 TO 10
    n = INT(6 * RND): REM generisani broj od 0 do 5); (max + 1)RND
    PRINT n: REM ispis brojeva 1 - 5
NEXT i
Deset cijelih brojeva u opsegu [0 - 5] 
3
2
4
5
0
1
4
2
5
4

Index