Math.Random()

di il
3 risposte

Math.Random()

Fatemi capire
Math.random() genera numeri tra 0 e <1, quindi 0,9999999

ora se io volessi un numero compreso tra 1 e 12 (esempio) dovrei fare una cosa del genere:
(math.random() * (12 - 1)) + 1 (ovviamente con il floor per i numeri interi)

ma facendo cosi mi sono reso conto che il 12 non esce mai; quindi quel +1 lo impostato a +2 e tutto torna...
mi confermate che il mio ragionamento è corretto???

3 Risposte

  • Re: Math.Random()

    Ni: il tuo ragionamento e' QUASI corretto, nel senso che c'e' una soluzione migliore:

    che differenza c'e' tra floor, ceil e round?
  • Re: Math.Random()

    migliorabile ha scritto:


    che differenza c'e' tra floor, ceil e round?
    ceil arrotonda per eccesso, quindi 3.14 sarà 4
    round per metà, cioè fino a 0.49 diventerà 0 da 0.5 compreso in poi diventerà 1
    floor arrotonda per difetto, quindi 3.14 sarà 3 (quindi floor e ceil sono uno l'opposto del l'altro)

    quello che mi vuoi dire, immagino, è di usare round cosi quando il risultato di Random sarà 0.9999 verra arrotondato ad 1 e non ho bisogno di fare +2, giusto?
  • Re: Math.Random()

    Qua ci sono degli stock gia' fatti se vuoi darci un occhiata:
    https://gist.github.com/kerimdzhanov/752962
Devi accedere o registrarti per scrivere nel forum
3 risposte