Newsgroup: it.comp.lang.javascript
Titolo: Come ottenere casualmente "0" o "1"?

Cari esperti sono tornato:
Ho bisogno di ottenere un valore iniziale che sia 0 o1
Chi mi aiuta?
Grazie Fulvio

Math.round( Math.random() )
Math.random() restituisce un numero float pseudo-casuale fra 0 e 1,
con Math.round "tronchi" tutto cio' che c'e' dopo la virgola.
Spero che sia quel che cercavi. Ciao!
--
C'ya, 
  |
  |
'/|\'
\\O//
//"\\
'\ /'
________________________________________TagLine___
"Quanti Angeli danzano sulla punta di uno spillo?"

 file://"\\


 > Spero che sia quel che cercavi. Ciao!
Non sono particolarmente d'accordo.
Perché la Math.round restituisca 1 bisogna che
il suo argomento sia 1 o piů.
Math.random() genera numeri da 0 a 1, il che significa che ottenere 1 č un
caso piů unico che raro, sempre che sia possibile, e non č detto.
Nelle specifiche dice "compreso tra 0 e 1", ma non specifica se gli estremi
sono
compresi o no.
Per cui lo script giusto č
function boolRand()
{
var a = Math.round(2 * Math.random() );
if (a==2)
    boolRand();
else
    return a;
};
il controllo si puň anche saltare, ma per sicurezza
estrema si puň anche lasciare.
Senza sarebbe
Math.round(2 * Math.random() );
e basta.

e basta.
Io invece continuo a riproporre un semplice "Math.round( Math.random()
)". :)
Infatti il round non tronca di netto tutto cio' che c'e' dopo la
virgola (tipo il parseInt, per fare un esempio).
Anche io quando ho postato lo script mi ero confuso fra i due
comportamenti. Sorry, sono appena tornato da una lunga vacanza, sono
fuori allenamento. ^________^
Il round molto semplicemente, "arrotonda". Quindi se il Math.random
restituisce 0.521242, il round mi sputa fuori un bell' 1.
Come vedi, avere un 1 come risultato non e' assolutamente un caso piu'
unico che raro. :)
--
C'ya, 
  |
  |
'/|\'
\\O//




Chiedo umilmente venia,
sono piuttosto cretinotto (con accento sardo)!!!
^_^;;
Tu mi avevi fuorviato, però,
dicendo che tronca tutto quello che c'è dopo
la virgola, e lì per lì non ci ho fatto caso,
ho preso per buona la tua affermazione.
Il round() arrotonda, non tronca.
E non è tutto, perché io il round() non lo
uso mai, uso sempre floor() o ceil() a seconda
di quello che mi serve.
Solo che se il round() tronca, allora è
uguale al floor() !!!!!
(tra l'altro questa questione me la
ero anche posta, per un attimo,
ma non le ho dato peso).
Per cui mi correggo: il tuo script è correttissimo.
(e migliore di quello
che uso io solitamente, in quanto se
ne sbatte dei casi estremi (0.5 viene arrotondato
a 1))
Quindi, non solo scusa, ma anche grazie!!
Ciao
Walker Boh
Webmaster di "Miss per Caso"
http://web.tiscalinet.it/elisapelatti
il sito ufficiale di Elisa Pelatti
P.S.
mi dai un'okkiata al mio sito
(qui sopra) ? :-)

 caso più unico che raro, sempre che sia possibile, e non è detto.
Math.round() serve a quello, ciccio... se è minore di 0.5 diventa 0, se è
superiore diventa 1

(qui sopra) ? :-)
Se non ricordo male ci sono gia' stato a farci una capatina. :)


>Math.round( Math.random() )
Grazie a tutti,
Funzi perfettamente!
bye
F.

 ha scritto nel messaggio
news:t4WN4.44420$xt2.5...@news.infostrada.it...

Prima di chiamare uno ciccio magari leggersi i post
di rettifica non guasta...
Walker Boh