Forum » Programiranje » JAVA - Math.random, kako določit interval?
JAVA - Math.random, kako določit interval?
darh ::
Math.random() ti vrne med 0 in 1.
torej Math.random() + 5 ti vrne med 5 in 6 :)
torej Math.random() + 5 ti vrne med 5 in 6 :)
Excuses are useless! Results are priceless!
snow ::
Raztegneš interval za razliko med zgornjo in spodnjo mejo... pa ga prestaviš za spodnjo mejo. :) Logično.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
||_^_|| ::
public class Neki
{
public static void main (String[]args){
int i=10;
int[] [] vzorec = new int [3] [10];
int a=(int) (Math.random()*(730-670)+670);
while (i!=0){
vzorec[1][i]=a;
--i;}
}
}
tole gor bi mogl vpisat v prvo vrstivo dvodimenzionalne tabele naključne vrednosti. Ampak prbije:
Exception in thread "main" java.lang.ArrayIndeyOutOfBoundsException: 10 at Neki.main(Neki.java:8)
Kje sem ga polomil?
Zgodovina sprememb…
- spremenil: ||_^_|| ()
kopernik ::
v Javi:
Object[] tabela = new Object[5]
pomeni, da bo tabela imela 5 elementov. _toda_, indexi teh elementov so od 0 do 4. Torej bi bila zanka, ki bi se sprehodila čez celotno tabelo, taka:
Če skrajšam, tvoj i bi moral biti definiran kot 9 in ne 10. Pa poskušaj kdaj debugirati - boš točno videl kdaj ima kaka spremenljivka določeno vrednost ...
Object[] tabela = new Object[5]
pomeni, da bo tabela imela 5 elementov. _toda_, indexi teh elementov so od 0 do 4. Torej bi bila zanka, ki bi se sprehodila čez celotno tabelo, taka:
for(int i=0;i < 5;i++) {
System.out.println(tabela[i]);
}
Če skrajšam, tvoj i bi moral biti definiran kot 9 in ne 10. Pa poskušaj kdaj debugirati - boš točno videl kdaj ima kaka spremenljivka določeno vrednost ...
Binji ::
Thomas sej na Vegovi jo majo
Drgaci pa ne bi blo slabo tudi ce bi bla drugje...mi vsaj ne bi delala takih problemov zdej.
||_^_||: tudi ti FRI?
Drgaci pa ne bi blo slabo tudi ce bi bla drugje...mi vsaj ne bi delala takih problemov zdej.
||_^_||: tudi ti FRI?
Kdor ne navija ni Slovenc, hej, hej, hej!
||_^_|| ::
kopernik: tenks
Thomas: ne bi blo švoh:)
Binji: ja:)
Thomas: ne bi blo švoh:)
Binji: ja:)
Zgodovina sprememb…
- spremenil: ||_^_|| ()
Roadkill ::
Jest lih zdele delam domačo nalogo...
vzorec[i][j] = 670 +(int)(Math.random() * 60 );
:)
Men tut slučajno še ni jasn, kako bom jest tole naredu. Sej mam še 12 ur... :)
vzorec[i][j] = 670 +(int)(Math.random() * 60 );
:)
Men tut slučajno še ni jasn, kako bom jest tole naredu. Sej mam še 12 ur... :)
JerKoJ ::
delat naloge cez noc ni nobena umetnost :)
sam bols delat k pa po slo-techu pisat
no ja upam da ti bo uspel
sam bols delat k pa po slo-techu pisat
no ja upam da ti bo uspel
Roadkill ::
Zmaga! :)
Bo kdo delal minolovca? Škoda ker je drug teden analiza, drugače bi se ga morda lotil...
Bo kdo delal minolovca? Škoda ker je drug teden analiza, drugače bi se ga morda lotil...
mks1992 ::
Zgled za random števila od 1 do 6:
int aRand = (int)(Math.random()*6+1);
Če na koncu ukaza ne dodamo +1 nam vrne samo števila od 0 do 5. Množiti pa moramo z 6 ker nam Math.random() vrne neko decimalno vrednost med 0 in 1.
Zgled za izpis random števil od 1 do 10:
System.out.println("Nakljucno stevilo: "+((int)(Math.random()*10+1)));
Cel ukaz mora biti v oklepaju, če ne lahko Java prepozna kak + kot linkanje besedila.
int aRand = (int)(Math.random()*6+1);
Če na koncu ukaza ne dodamo +1 nam vrne samo števila od 0 do 5. Množiti pa moramo z 6 ker nam Math.random() vrne neko decimalno vrednost med 0 in 1.
Zgled za izpis random števil od 1 do 10:
System.out.println("Nakljucno stevilo: "+((int)(Math.random()*10+1)));
Cel ukaz mora biti v oklepaju, če ne lahko Java prepozna kak + kot linkanje besedila.
mks1992 ::
V zgornjem odgovoru sem omenil samo interval od 0 ali 1 pa do naše želene meje. Če pa potrebujemo še negativna števila (od -100 pa do 100), potem pa je izgled ukaza tak:
int aRand = (int)(Math.random()*200-100);
Do sedaj se pokazal kako dobimo samo interval celih števil, za realna pa namesto int uporabimo double. Zgled:
double aRand = Math.random()*100-50; //Števila med -50 pa do +50
int aRand = (int)(Math.random()*200-100);
Do sedaj se pokazal kako dobimo samo interval celih števil, za realna pa namesto int uporabimo double. Zgled:
double aRand = Math.random()*100-50; //Števila med -50 pa do +50
Roadkill ::
Samo, da te opozorim: Že dva odgovora si napisal na 7 let staro vprašanje. Vsi ljudje, ki so/smo iskali odgovor zdaj že razumemo delovanje math.random funkcije.
Ü
jjjj ::
meni se pa ne zdi nč narobe, če odgovori. meni je npr zdej čist prov pršou njegov odgovor :)hvala!
Spura ::
Ja, res zajebano napisat matematicno funkcijo, ki ti interval 0 do 1 uniformno preslika v nek dolocen vecji interval. Clovek skoraj rabi srednjesolsko matematiko.
Sergio ::
O tem bi se dalo razpravljat, Spura, ce iz snovi srednjesolske analiticne matematike preides na IEEE-754 reprezentacijo. Ni tok trivialen problem, ce "dovolj" raztegnes ta dolocen vecji interval.
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java - DN] Naključna številaOddelek: Šola | 1374 (903) | nyler |
» | [Java] Domača nalogaOddelek: Šola | 881 (753) | lebdim |
» | java pomočOddelek: Programiranje | 2019 (1411) | kr?en |
» | java in deležiOddelek: Programiranje | 1177 (1024) | phyro |
» | osnove v Javi - zvezdiceOddelek: Programiranje | 3600 (2822) | Tutankhamun |