Miten saisin tehtyä niin että ohjelma arpoisi jonkin nimen taulusta. Numeroiden kanssa on kyllä helppoa, mutta nyt kun tarvisi arpoa jokin merkkijono. Koodini on:
public class mjono { public static void main(String[] args) { String[] t = {"Arto","Esko","Sulevi"}; x = (String) (Math.random() *(t[])); } }
Arvo satunnaisluku väliltä 0-(taulukon koko-1) ja sitten ota niin mones alkio taulukosta...
Äh, toimisikohan tähän tyyliin jos nyt muistan oikein tuon Math.randomin toiminnan:
String[] t = {"Arto","Esko","Sulevi"}; int k = (int) (Math.random()* 2); String x = t[k];
Eli näin... Pitäisi toimia, toivottavasti oli apua.
Ei kyllä vielkään toimi. Eli en saa arvottua nimeä taulusta.
Toimii. En vain heti tajunnu sinun neuvoa. Kiitos
Ootko saanu tuota kolmatta koskaan arvottua? En ole varma, mutta eikö tuo joko pitäisi kertoa 3:lla 2:n sijaan tai sitten laittaa (int)Math.round(Math.random()*2));
Joo tein sen näin:
public class harj25 { public static void main(String[] args) { int luku; String[] nimet = {"Arto","Esko","Sulevi"}; luku = (int) (Math.random() * 3); System.out.println(nimet[luku]); } }
Tässä on pieni funktio kokonaislukujen joukkoon kuuluvan satunnaisluvun arpomiseen (jos haluaa negatiivisia satunnaislukuja, niin pitää laittaa yksi haluttua lukua pienempi... johtuu (long):in aiheuttamasta pyöristyksestä)
public long random(long alaraja, long ylaraja) { return (long)(Math.random() * (ylaraja - alaraja + 1) + alaraja); }
Esim. random(53, 2257823); palauttaa satunnaisluvun väliltä 53 - 2257823
random(-2, 4); palauttaa arvon väliltä -1 - 4
random (-101, -21); palauttaa arvon väliltä -100 - -20
Aihe on jo aika vanha, joten et voi enää vastata siihen.