Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: string + random

mrkebab [19.04.2004 21:39:33]

#

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[]));

  }
}

nikke [19.04.2004 23:14:41]

#

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.

mrkebab [20.04.2004 14:15:06]

#

Ei kyllä vielkään toimi. Eli en saa arvottua nimeä taulusta.

mrkebab [20.04.2004 14:35:39]

#

Toimii. En vain heti tajunnu sinun neuvoa. Kiitos

tsuriga [20.04.2004 16:40:33]

#

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));

mrkebab [20.04.2004 20:06:27]

#

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]);


}
}

Sami [21.04.2004 15:35:01]

#

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

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta