Tässä on JavaScript pätkä joka arpoo satunnaisluvun, arpooko se väliltä 1-3 vai 0-3. Ja miten saan ihan itse testattua tuon mitä se tekee.
var text;
var x = Math.floor(Math.random() * 3);
switch(x) {
case 1: text = "Satunnaisluku 1"; break;
case 2: text = "Satunnaisluku 2"; break;
case 3: text = "Satunnaisluku 3"; break;
default:text = "Satunnaisluku 0";
}
JavaScript ja satunnaisluvun arpominen
13
318
Vastaukset
- Anonyymi
Kauankohan menisi aikaa neljä miljardin kierroksen while silmukassa.
t. ap. - Anonyymi
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
Luku tulee väliltä 0-2, sillä Math.random() antaa luvun väliltä [0, 1), joten kokonaisosa jää aina alle kolmen. Luvut 0, 1 ja 2 taas ovat kaikki mahdollisia ja yhtä todennäköisiä (Math.random() tasajakautunut). Periaatteessa, vaikka 1 olisikin Math.random():n mahdollinen arvo, olisi sen todennäköisyys 0, jos ajatellaan Math.random():n noudattavan tasajakaumaa.
Helpoiten saat testattua syöttämällä koodin konsoliin. Mihin sinä muuten tuota text:iä
ja switch:iä tuossa tarvitset? Testiä varten vain tulosta luku x konsoliin koodilla
console.log(x);
Ja sen tekstinkin saat näppärämmin näin (pistetään nyt toString() varmuuden vuoksi vaikka sitä ei tarvitsisi :D ):
var text = "Satunnaisluku " x.toString();- Anonyymi
var text;
console.log(Math.floor(Math.random() * 2));
Arpoo 0 ja 1 - Anonyymi
Anonyymi kirjoitti:
var text;
console.log(Math.floor(Math.random() * 2));
Arpoo 0 ja 1ei tarvita var text; riviä
- Anonyymi
Tee tuosta funktio näin:
var munRandom = () => Math.floor(Math.random()*3);
niin on helpompi testailla. Laita vaikka listaan 100 randomia ja kunkin luvun lukumäärä:
var n = 100;
var data = new Array(n).fill(0).map(munRandom);
var maarat = [0,1,2].map(k=>data.filter(x=>x===k).length);
console.log(maarat);- Anonyymi
Kovastipa se näyttää helposti ymmärrettävältä, mutta toimii.
- Anonyymi
Var on mennyttä aikaa. Käyttäkää muuttujille lettiä ja muuttumattomille constia.
https://ui.dev/var-let-const/- Anonyymi
Onko tässä nyt kysymys muuttujan näkyvyysalueen laajuudesta, var muuttuja on paikallinen ja let globaali.
- Anonyymi
Anonyymi kirjoitti:
Onko tässä nyt kysymys muuttujan näkyvyysalueen laajuudesta, var muuttuja on paikallinen ja let globaali.
Joo, mutta toiste perin: var on 'globaali' tai siis funktio-skoopissa globaali tai miten se nyt sanotaan, siis jos sulla on funktio, niin var:illa määritelty näkyy siellä kaikkialla.
Ite käytän varria sillon jos pitää vaan nopeesti konsolissa jotain juttua kokeilla. Sen voi laittaa uudestaan saman koodin kun sitä korjailee, kun var ei välitä vaikka olisi ennenkin määritelty.
- Anonyymi
Jos et laita alkuun random-generaattorin siemenlukua josta se aloittaa, aloittaa aina samasta, jolloin tulee samoja lukuja aina peräkkäin kun olet käynnistänyt tietokoneen uudelleen ja ajat tuon ohjelman.
Eli pitää synkronoida aikaan tavallaan tuo satunnaislukugeneraattori, C-kielessä on tuollainen srand(TIME); joku vastaava funktio on varmasti JAVA:ssakin.
c:ssä srand() ja raqnd(), itse käytän aivan omaa satunnaislukugeneraattoriani en noita valmiita.- Anonyymi
Laittaisihan sitä vaikka mitä siemeniä kun osaisi.
- Anonyymi
Ymmärrät varmastikin mitä tarkoitan, että ei ole kovinnaisia=kovin satunnaisia ne luvut jos aina tietokoneen käynnistyttyä se alkaa arpomaan samojqa lukuja.
Mekaanisen randomlukugeneraattorin saa helposti tehtyä näin: kaada näppäimistön päälle kupillinen juomaa, ala sen jälkeen painelemaan numeronäppäimiä, kokeillen mitä tulee.
Ehkä parempi ottaa random jostain digitoidusta lähteestä, vaikka web-kameran kuvasta joka kuvaa ulkopuolelle jollain algoritmilla laskemalla liikkuvasta kuvasta numeroita.- Anonyymi
Tämä on jo kokeiltu.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
6 kW saunan lämmityksestä kohta 10 euron lisämaksu / kerta
Kokoomuslainen sähköyhtiöiden hallitsema Energiavirasto ehdottaa 5 kW:n rajaa, jonka ylittämisestä tulee lisämaksu. Tark1475504Minja jytkyttää vas.liiton kannatusta ylöspäin
Alkaa raavaat duunarimiehetkin palaamaan vasemmistoliiton kannattajiksi. Eduskunnassahan on vain kaksi työntekijöiden p1363598"Mitä sä nainen tuot sitten pöytään" ?
Jos mies provaidaa ja suojelee... Pitääkö miesten kysyä tuollaisia?1263339Ekologinen kommunismi tulee voittamaan fossiilikapitalismin
Kiina on mahtitekijä uusiutuvien energialähteiden kehityksessä, ja Trump osoitus viimeisestä öljyn perään itkemisestä, m363213Mies, kerro minulle vielä jotakin aivan uniikkia
ja ainutlaatuista minkä vain me kaksi voisimme ymmärtää jos olemme sen kokeneet ja eläneet, jotta ihan varmasti tietäisi432714Oikeistopuolueiden kannatus vain 37,8 %, vasemmiston 43,0 %
Keskustaan jää 17,4 prosenttia ja loput ovat sitten mitä ovat. Mutta selvästikin Suomen kansa on vasemmalle kallellaan.512304- 242230
Hyviäkin uutisia tulossa, hallinto-oikeus asettaa toimeenpanokieltoon
Hyvinvointitalon työmaa pysähtyy. Rillankivi+energia ja vesi kytkyrahanpesu stoppaa. Tytäryhtiöiden hallitusjäsenet+kon2292176prööt prööt nyt ottaa vihervassaria pattiin!
Korvatkaa R kirjaimet L kirjaimilla ja sanokaa ääneen "Jari Kurri etsii pakoputkiautossaan jarruja".111914Gallup: Mikä on ollut mielestäsi paras tv-sarja ikinä?
Gallup: Mikä on ollut mielestäsi paras tv-sarja ikinä? Onko se joku suomalainen viihdepläjäys, brittirikossarja, amerikk931816