» »

JAVA - Math.random, kako določit interval?

JAVA - Math.random, kako določit interval?

||_^_|| ::

a=(Math.random()*2); tole da v a številko od 0 do 2. Kako bi naštimu recimo od 5 do 6?

darh ::

Math.random() ti vrne med 0 in 1.

torej Math.random() + 5 ti vrne med 5 in 6 :)
Excuses are useless! Results are priceless!

||_^_|| ::

ok, kaj pa recimo med 345 in 788?

Fizikalko ::

Ja, logično:

Math.random() * (788-345) + 345

8-)

||_^_|| ::

tole je pa vse prej kot logično:))

tenks!

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:


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 ...

Thomas ::

Ne verouka, ne spolne vzgoje - Javo v šole! ;)
Man muss immer generalisieren - Carl Jacobi

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?
Kdor ne navija ni Slovenc, hej, hej, hej!

||_^_|| ::

kopernik: tenks

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... :)

JerKoJ ::

delat naloge cez noc ni nobena umetnost :)
sam bols delat k pa po slo-techu pisat :D

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...

XsenO ::

Morda ga bom jaz probal čeprav se mi niti malo ne sanja kako ga naredit
1 + 1 = 1

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.

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

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.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java - DN] Naključna števila

Oddelek: Šola
121279 (808) nyler
»

[Java] Domača naloga

Oddelek: Šola
7801 (673) lebdim
»

java pomoč

Oddelek: Programiranje
211835 (1227) kr?en
»

java in deleži

Oddelek: Programiranje
61070 (917) phyro
»

osnove v Javi - zvezdice

Oddelek: Programiranje
403388 (2610) Tutankhamun

Več podobnih tem