Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Math.random +2

  1. #1
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685

    Math.random +2

    Ciao,
    oggi ho un problemino un po' stupido ma ho bisogno del vostro aiuto:

    devo fare un random da 1 a 3!

    se io utilizzo Math.round(Math.random()+2) il random avviene tra il 2 e il 3; qual'è il metodo giusto?

    Grazie.
    FaX

  2. #2
    Utente di HTML.it L'avatar di Shork
    Registrato dal
    Dec 2001
    Messaggi
    259
    Math.ceil(Math.random()*3)

  3. #3
    codice:
    Math.round(Math.random()*2)+1

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  4. #4
    Utente di HTML.it L'avatar di Shork
    Registrato dal
    Dec 2001
    Messaggi
    259
    Effettivamente se nel mio codice il numero random viene 0 ottengo 0 e non 1...

  5. #5
    No, mi permetto di correggere Yassassin (quale onore ), la sua formula non è precisa. Usa questa:
    codice:
    Math.round(Math.random()*3)%3+1;
    ciao

  6. #6
    Originariamente inviato da Marsellus Wallace
    No, mi permetto di correggere Yassassin (quale onore ), la sua formula non è precisa. Usa questa:
    codice:
    Math.round(Math.random()*3)%3+1;
    ciao
    sinceramente non ho capito la tua modifica


    la mia funzione -> Math.round(Math.random()*2) ti restituisce un valore compreso tra 0 e 2 -> incrementato di 1 avrai sempre un valore compreso tra 1 e 3

    la tua funzione -> Math.round(Math.random()*3) ti restituisce un valore compreso tra 0 e 3 -> quindi dividi il valore per 3 e ti ritrovi il resto (significato del %) -> al resto aggiungi 1 e avari un valore compreso tra 1 e 3

    la differenza tra la mia funzione e la tua è che io faccio 2 passaggi tu 3
    correggimi se sbaglio.


    ps: la funzione di Shork è comunque corretta perchè Math.random() non restituisce mai 0 ma sempre 0.qualche cosa

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  7. #7
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    Non posso utilizzare tutte e tre i suggerimenti e, quindi, far fede alla par condicio ma vi ringrazio a tutti!

    L'avevo già utilizzato altre volte, ragionando con la mia testolina, ma l'ora mi faceva pensare ad un bel piatto di pasta...


    SALUTI!
    FaX

  8. #8
    Originariamente inviato da Yassassin
    la differenza tra la mia funzione e la tua è che io faccio 2 passaggi tu 3
    correggimi se sbaglio.
    La tua formula non rende una distribuzione uniforme: il numero 2 viene estratto con probabilità doppia rispetto agli altri due :bubu:


    edit: premesso, in ogni caso, che la funzione di shork era corretta come dici tu e non c'avevo nemmeno pensato

  9. #9
    Originariamente inviato da Marsellus Wallace
    La tua formula non rende una distribuzione uniforme: il numero 2 viene estratto con probabilità doppia rispetto agli altri due :bubu:
    non avevo effettuato quel controllo


    questo è il risultato:

    tuo esempio:
    1 = 9944 - 2 = 10022 - 3 = 10034
    tempo esecuzione = 1038 millisecondi

    mio esempio:
    1 = 7552 - 2 = 14884 - 3 = 7564
    tempo esecuzione = 1018 millisecondi

    Shork esempio:
    1 = 10016 - 2 = 9985 - 3 = 9999
    tempo esecuzione = 1015 millisecondi

    i risultati parlano chiaro...

    promossi:
    Math.round(Math.random()*3)%3+1;
    Math.ceil(Math.random()*3);

    bocciati:
    Math.round(Math.random()*2)+1


    uso un arma segreta e dico che questo è il codice migliore:

    k = random(3)+1;

    1 = 9882 - 2 = 10138 - 3 = 9980
    tempo esecuzione = 561 millisecondi

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  10. #10
    Utente di HTML.it L'avatar di ilpiubello
    Registrato dal
    May 2000
    Messaggi
    2,685
    allora, vada per

    k = random(3)+1;

    :adhone:
    FaX

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.