Mai mult
Generarea aleatoare de numere întregi în JavaScript într-un anumit interval?
Cum pot genera aleator numere întregi între două variabile specificate în JavaScript, de exemplu x = 4 si y = 8
ar ieșire oricare dintre4, 5, 6, 7, 8
?
1823
32
Există unele exemple pe Mozilla Developer Network pagina:
Aici's logica. L's un simplu regula de trei:
Matematica.random()
returnează un Număr între 0 (inclusiv) si 1 (exclusiv). Deci, avem un interval de genul asta:Acum, ne-am'd ca un număr între " min "(inclusiv) și "max." (exclusiv):
Putem folosi Matematica.aleatorie pentru a obține corespondent în [min, max) interval. Dar, în primul rând ar trebui să factor un pic problema prin scăderea " min " de la cel de-al doilea interval:
Acest lucru vă oferă:
Putem acum aplica Matematica.aleator și apoi se calculează corespondent. Las's alege un număr aleator:
Deci, în scopul de a găsi "x", ne-ar face:
Don't uitați să adăugați "min." înapoi, astfel încât să putem obține un număr în [min, max) interval:
Asta a fost prima funcție din MDN. Cel de-al doilea, returnează un număr întreg între " min " și " max.", ambele inclusiv.
Acum, pentru obtinerea de numere întregi, ai putea folosi
rotund
,ceil
sau "podea".Ai putea folosi Matematica.round(Math.random() * (max - min)) + min`, totuși, acest lucru vă oferă un non-chiar și de distribuție. Ambele, " min " și "max." doar aproximativ jumătate șansa de a roll:
Cu "max." excluse din interval, ea are o șansă să se rostogolească decât " min.".
Cu Matematica.floor(Math.random() * (max - min +1)) + min` ai un perfect chiar și distribuție.
Puteți't folosi
ceil()
și " -1 "în ecuația asta pentru că" max. " acum a avut un ușor mai mică șansă să se rostogolească, dar puteți arunca (nedorite)min-1
rezultat.Matematica.random()
De Mozilla Developer Network documentație:
Exemple utile:
utilizare:
Întoarce un număr aleator între 1 și 10:
Întoarce un număr aleator între 1 și 100:
Alternativă dacă utilizați Underscore.js puteți utiliza
Dacă ai nevoie de variabilă între 0 și max se pot utiliza:
Alte răspunsuri don't considerare pentru perfect rezonabil parametri de " 0 " și "1". În schimb, ar trebui să utilizați de "rotund" ** în loc de a
ceil
sau "podea":Aici este MS DotNet punerea în Aplicare a Aleatoare clasă în javascript-
Utilizați această funcție pentru a obține numere aleatoare între interval dat
După generarea unui număr aleator folosind un program de calculator, se mai considera ca un numar aleator ales dacă numărul este o parte sau un complet de cea inițială. Dar dacă a fost schimbat, atunci matematicieni nu sunt accepta ca un număr aleator și se poate numi un părtinitoare număr. Dar dacă sunteți în curs de dezvoltare un program pentru o sarcină simplă, acest lucru nu va fi un caz să ia în considerare. Dar dacă sunteți în curs de dezvoltare un program pentru a genera un număr aleator pentru lucruri de valoare, cum ar fi loterie program sau joc de noroc, atunci programul va fi respins de management dacă nu ia în considerare cu privire la cazul de mai sus.
Deci, pentru cei ce fel de oameni, aici este sugestia mea:
Genera un număr aleator folosind Matematica.random()
.(spun asta
n`)Dacă știi cum să citească numere aleatoare de masă pentru a alege un număr aleator, știi procesul de mai sus(înmulțirea cu 1, 10, 100 și așa mai departe) nu încalcă una care nu a fost menționat la început.( Pentru că se schimbă doar locul punctului zecimal.)
Studiu următorul exemplu și de a dezvolta-l la nevoile tale.
Dacă ai nevoie de o mostră [0,9], apoi etaj de n10 este răspunsul dumneavoastră și, dacă este nevoie [0,99] atunci etaj al n100 este răspunsul dumneavoastră și așa mai departe.
Acum, să intre în rolul tau:
Te'am cerut numere printre anumit interval. (În acest caz că sunt părtinitoare, printre care variază. - De a lua o serie de [1,6] de rola un zar, atunci ești părtinitoare în [1,6], dar încă este o întâmplare dacă și numai dacă a muri este imparțial.)
Deci, ia în considerare intervalul ==> [78, 247] numărul de elemente din gama = 247 - 78 + 1 = 170; (deoarece ambele limite sunt inclusive.
Pentru un număr întreg aleator, cu o gamă largă, încercați:
Stiu ca aceasta intrebare a raspuns deja dar răspunsul meu ar putea ajuta cineva.
Am găsit această metodă simplă de pe W3Schools:
Sper că acest lucru ar ajuta pe cineva.
Pentru a obține un număr aleator între 1 și 6, în primul rând face:
Aceasta multiplică de un număr aleator de 6 și apoi se adaugă 0,5 la ea. Următoarea rundă de număr la un număr întreg pozitiv de a face:
Această rundă număr la cel mai apropiat număr întreg.
Sau pentru a face mai ușor de înțeles a face acest lucru:
În general, codul pentru a face acest lucru, folosind variabile este:
Motivul pentru a lua distanță de 0,5 din valoarea minimă este pentru că utilizează valoarea minimă singur ar permite să obțineți un număr întreg care a fost unul mai mult decât valoarea maximă. Luându-0.5 din valoarea minimă sunteți în esență prevenirea valoarea maximă de a fi rotunjit.
Sper că vă ajută.
Folosind următorul cod puteți genera matrice de numere aleatoare, fără a repeta, într-un interval dat.
Pentru a testa această funcție, și variații de această funcție, cu excepția de mai jos HTML/JavaScript într-un fișier și deschideți cu browser-ul. Cod va produce o grafic arată distribuția de un milion de apeluri de funcții. Codul va înregistra, de asemenea, cazuri de margine, așa că, dacă funcția de a produce o valoare mai mare decât max, sau mai mică decât min, te.va.știu.despre.acesta.
Aleatoare număr întreg între cel mai mic și cel mai mare:
Nu mai eleganta solutie.. dar ceva rapid.
Aici's ceea ce am folosi pentru a genera numere aleatoare.
Facem executa mare++", deoarece " Matematica.random()` generează un număr aleator între 0, (inclusiv) si 1(exclusiv) fiind excluse, înseamnă că trebuie să crească mare de unul înainte de a executa orice matematica. Avem apoi scade scăzut de mare, oferindu-ne cel mai mare număr pentru a genera - low, apoi +low, aducând mare înapoi la normal, și de a face cel mai mic număr de cel puțin scăzută. apoi ne vom întoarce numărul rezultat
aleatorie(7,3) ar putea reveni
3,4,5,6 sau 7
Aici este un exemplu de o funcție javascript care poate genera un număr aleator de orice lungime specificată fără a utiliza Matematica.random():
Uint8Array crea o matrice umplut cu un număr de până la 3 cifre care ar fi un maxim de 999. Acest cod este foarte scurt.