Tilfeldige tall i JavaScript
Tilfeldige tall har alle slags bruksområder, fra det morsomme til det praktiske. De fleste spill involverer en slags tilfeldighet i form av ting som terninger eller stokkede kort. Hvis du vil vise et tilfeldig sitat når noen besøker siden din, trenger du en kilde til tilfeldighet. Tilfeldige tall er ikke alle morsomme og spill, tilfeldige tall brukes i kryptografi, for tilfeldig prøvetaking, for modellering og for å sette ting i tilfeldig rekkefølge (for eksempel kandidater på en stemmesedd.) Noen av disse bruker ikke bruk av tall direkte , men du kan konvertere fra tilfeldige tall til tilfeldige ting ved å sette de tingene du vil velge i rader og tilfeldig velge en rad. I programmering fungerer matriser godt for dette. Tilfeldige tall er ikke alltid tilfeldige. Hvis du ruller et sett med rettferdige terninger, vil du få tilfeldige tall, men metodene som datamaskiner bruker for å plukke tilfeldige tall er ofte pseudo-tilfeldige tall, noe som betyr at de ser ut til å være tilfeldige på overflaten, men de er faktisk enten forutsigbare eller en gjentatte serier. For noen ting er dette ikke en viktig forskjell. Hvis du viser et tilfeldig sitat eller en spøk hver gang noen laster inn websiden din, spiller det sannsynligvis ingen rolle at noen kan forutsi når et spesifikt tilbud vil vises, og du kan trygt bruke pseudo-tilfeldige tall (for den saks skyld kan du sannsynligvis bare vis sitatene dine i den rekkefølgen du tilfeldigvis skrev dem ned.) Hvis du prøver å utføre tilfeldig medikamentprøving av Tour de France-idrettsutøvere, er det avgjørende at utøverne ikke kan forutsi når eller om de vil bli testet.

JavaScript Math-objektet inkluderer en metode som gir pseudo-tilfeldige tall. I motsetning til mange andre programmeringsspråk, lar JavaScript deg ikke frø nummergeneratoren med din egen tilfeldighetskilde. Ulike implementeringer er forskjellige i hvor nært tilfeldig tallene som er gitt, men generelt sett bør de være gode nok til å bruke til morsomme eller kunstneriske formål, men hvis du trenger tilfeldige tall for lovlig regulerte eller sikkerhetsmessige formål, bør du finne en bedre kilde til tilfeldighet. De math.random () metoden returnerer et tilfeldig tall som er 0 eller mellom 0 og 1. Noen versjoner av Opera-nettleseren har ikke-standarder math.random () metode som veldig sjelden kommer tilbake 1. Du må på en eller annen måte håndtere dette uventede resultatet - det enkleste forslaget jeg har sett er å bruke modulo-operatøren med en mot verdien returnert av math.random (), vil dette returnere den opprinnelige verdien hvis tilfeldig tall er i det definerte området og 0 hvis du har en 1. Også synes jeg at jeg ikke trenger en tilfeldig desimal mindre enn ett, men heller et tilfeldig heltall. For å få et tilfeldig heltall multipliserer du verdien fra math.random () etter antall potensielle tilfeldige tall du ønsker (X) og finne forrige eller neste heltall. Matteobjektet gir gulv- og takmetoder som du kan bruke til dette formålet. Hvis du bruker the math.floor () metoden, vil du få et tall fra 0 til (X-1). Hvis du bruker math.ceiling () metode vil du få et helt tall fra 1 til X.

For å finne et tilfeldig tall mellom 0 og (X-1), bruk:

Math.floor ((Math.random ()% 1) * X)

Disse er spesielt nyttige for å finne et tilfeldig element.

For å finne et tilfeldig tall mellom 1 og X, bruk:

Math.ceiling ((Math.random ()% 1) * X)

Oppgaver som dette som er ganske vanlige, men krever ganske mye inntasting, er gode kandidater for å bli omgjort til en funksjon.

For en diskusjon om forskjellen mellom virkelig tilfeldige tall og pseudo-tilfeldige tall vi bruker her, en kilde til virkelig tilfeldige tall, og noen eksempler på morsomme ting du kan gjøre med tilfeldige eller pseudo-tilfeldige tall, sjekk ut www.random. org

Video Instruksjoner: Kap. 3.1b Math.random() (April 2024).