Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???

[es] :: Java :: kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???

[ Pregleda: 2961 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Meklaud
Danko Miocinovic
Blizu

Član broj: 6604
Poruke: 39
*.ns.ac.yu.

ICQ: 103744801


+1 Profil

icon kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???26.02.2007. u 20:21 - pre 208 meseci
Pozdrav svima.

Hteo sam da napravim niz koji se puni double vrednostima -20 do 20 i da recimo pomocu Math.random() metode dobijem neki broj koji cu ja pomnoziti brojem izmedju -20 i 20 i tako dobiti neke vrednosti.Hteo sam to da uradim kroz neku for petljicu, ali ne znam bas kako bih pomnozio neki random broj i sa nekim pozitivnim i negativnim brojevima.

for(int i=0;i<niz.length;i++)
{
niz = Math.random()* ????????
}

recimo da hocu 50 vrednosti da dobijem izmedju -20 i 20


Hvala
D
 
Odgovor na temu

mizob

Član broj: 13465
Poruke: 1108
*.rcub.bg.ac.yu.



+5 Profil

icon Re: kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???26.02.2007. u 20:45 - pre 208 meseci
Mozes ovako, mada je relativno lose napisano, ali radi posao


Code:

for(int i=0; i<niz.length; )
{
niz[i] = Math.random();
if ( ( niz[i] < 20 ) && ( niz[i] > -20 ) ) i++;
}




[Ovu poruku je menjao Milos Zobenica dana 26.02.2007. u 21:57 GMT+1]
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.smin.sezampro.yu.



+13 Profil

icon Re: kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???26.02.2007. u 20:59 - pre 208 meseci
Code:

Random generator = new Random();
for(int i=0;i<niz.length;i++) {
    niz[i] = generator.nextInt(20 - (-20) + 1) + (-20);
}
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.smin.sezampro.yu.



+13 Profil

icon Re: kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???26.02.2007. u 21:02 - pre 208 meseci
Za slucaj da nije ocigledno - dakle generator.nextInt(41) ti daje brojeve u opsegu [0, 40]. Ako od tog opsega oduzmes 20 dobijes opseg [-20, 20], a to je ono sto ti treba
 
Odgovor na temu

Meklaud
Danko Miocinovic
Blizu

Član broj: 6604
Poruke: 39
*.ns.ac.yu.

ICQ: 103744801


+1 Profil

icon Re: kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???27.02.2007. u 07:57 - pre 208 meseci
Hvala na pomoci,

sinoc sam malo razmislio pa sam uradio kao niz=Math.random()*40-20

Hvala jos jednom
D
 
Odgovor na temu

dany
Daniel Sabo
Novi Sad

Član broj: 10340
Poruke: 40
91.150.113.*



Profil

icon Re: kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???28.02.2007. u 12:33 - pre 208 meseci
Za to postoji jedan opti princip, a to je pravljenje bijekcije iz opsega skupa koji daje funkcija Math.random() sa opsegom koji nama treba. Po teoriji, moguce je napraviti bijekciju preslikavanja opsega realnih brojeva iz opsega [0,1) sa beskonacnim skupom realnih brojeva. To je onaj dokaz iz Matematicke algebre, ne secam se tacno kako ide, ali cak nije ni tesko, ako neko hoce, mogu da se 'napnem' pa da ga se prisetim. No to nije vazno, vazno je da racunari ne rade sa beskonacnim brojevima, pa mi preslikavamo u opseg koji nama treba.

Takodje, vazno je primetiti da opseg koji generise funkcija random() obuhvata nulu, ali ne i jedinicu.

Da ne davim teorijom (koje se, usput ni ja tacno ne secam), vazno je reci da se tu koriste samo dve operacije nad opsegom:
- skaliranje
- pomeranje (vise volim izraz siftovanje).

Ako hocemo opseg izmedju 0 i nekog broja n, vrsimo mnozenje Math.random() sa tim brojem n (skaliranje).
A, ako hocemo da taj opseg ne pocinje od nule, vec od nekog broja, dodamo taj broj na prethodni rezultat (siftovanje).

Znaci, u tvom slucaju, ako bi hteli opseg izmedju -20 i 20, prvo oduzmemo granice opsega 20 - (-20) i dobijemo opseg od 0 do 40. Zatim vrsimo dodavanje broja (-20) na rezultat i dobijamo opseg izmedju -20 i 20. Tacno onako kako si ti uradio.

Zakljucak:
Uvek se vrsi prvo skaliranje sa brojem koji dobijamo oduzimanjem granice opsega.
Zatim se vrsi siftovanje brojem koji je donja granica opsega.

Napomena:
Krajnji rezultat je broj tipa double iz opsega [-20,20), znaci broj 20 nije ukljucen u rezultat.

@Vanja Petreski:
Tvoj primer je dobar ako nam trebaju celi brojevi, ali Meklaud je trazio:
Citat:
niz koji se puni double vrednostima

Pozdrav
Daniel Sabo
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.antegra.com.



+13 Profil

icon Re: kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???28.02.2007. u 13:21 - pre 208 meseci
Da, skapirao sam u medjuvremenu :)
 
Odgovor na temu

[es] :: Java :: kako da dobijem brojeve izmedju -20 i 20 pomocu neke metode???

[ Pregleda: 2961 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.