Lukujen arpominen
| random(luku); | Arpoo desimaaliluvun väliltä [0,luku] . |
| round(random(luku)); | Arpoo kokonaisluvun väliltä [0,luku]. |
Komennolla random(luku); voimme arpoa lukuja väliltä: 0…luku. Arvottu luku on aina desimaaliluku. Mikäli haluamme pyöristää desimaaliluvun kokonaisluvuksi, niin sen voi tehdä:
round(desimaaliluku); - komennolla. Jos arpominen laitetaan void draw ( ) -lohkon sisälle, arpominen suoritetaan jatkuvasti uudestaan ja uudestaan. Jos haluamme arpoa kokonaisluvun väliltä [0,luku], arpomiskomento on kirjoitettava muotoon: round(random(luku));
Mikäli haluamme arpoa luvun vain kerran, niin silloin arpominen ja lukujen sijoittaminen muuttujille pitää laittaa heti ohjelman alkuun. Tässä on siis esimerkki globaaleista muuttujista.
Tutkitaan lukujen arpomista esimerkin avulla. Luku1-muuttuja saa desimaaliluvun väliltä 0…1. Luku2-muuttuja saa arvoksi desimaaliluvun väliltä 0…100. Samoin luku3 paitsi, että luku3 on kokonaisluku, johtuen pyöristyskomennosta. Luku4 saa arvoksi satunnaisluvun väliltä 1...39. Arpominen tapahtuu välillä 0...38, mutta kun tähän arvottuun lukuun lisätään 1, niin tällöin arvottu luku on väliltä 1...39.
|
// Ohjelman tehnyt: e-Oppi Oy
// 30.1.2017
float luku1 =random(1); // Arvotaan desimaaliluku väliltä 0..1
float luku2 = random(100); // Arvotaan desimaaliluku väliltä 0..100
int luku3 = round(random(100)); // Arvotaan kokonaisluku väliltä 0..100
int luku4 = 1 + round(random(39)); // Arvotaan luku väliltä 1..40
void setup() {
size(500,300); // Ikkunan koko
background(255); // Taustaväri valkoinen
fill(0); // Tekstin väri musta
textSize(24); // Fontin koko 24
}
void draw() {
text(luku1,100,50);
text(luku2,100,100);
text(luku3,100,150);
text(luku4,100,200);
}
Kun ohjelma ajetaan, niin tulostus näyttää esimerkiksi tältä.

Arpominen komennolla random(luku); palauttaa aina desimaaliluvun, siksi luku1 ja luku2 on määritelty double tyyppisiksi eli näihin muuttujiin sijoitetaan desimaalilukuja. Kun lisäämme vielä komennon round(luku); niin saamme desimaaliluvun muutettua kokonaisluvuksi, siksi luku3 ja luku4 muuttujat on määritelty int-tyyppisiksi muuttujiksi eli näihin muuttujiin sijoitetaan vain kokonaislukuja.
Yhteenvetona voimme todeta, että jos haluamme arpoa kokonaisluvun lukuväliltä [a,b], niin siihen pätee seuraava kaava.
| a+round(random(b-a)); | Komento arpoo satunnaisluvun väliltä [a,b]. |

Esimerkiksi, jos haluat arpoa luvun väliltä 10...30, niin kirjoita arpomiskomento muotoon:
10+round(random(20));
| round(random(a,b)); | Komento arpoo satunnaisluvun väliltä [a,b]. |
Eli jos arvot kokonaisluvun väliltä 10...30, niin arpomiskomento on muotoa: round(random(10,30));