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
336
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
Kansalla on oikeus tietää miksi persut pettävät
Koko kulunut hallituskausi on kysytty persuilta, minkä vuoksi he ovat pettäneet käytännössä jokaisen vaalilupauksen, ain2339160Venäjän armeijan evp-upseeri: Armeija surkeassa tilassa, jonka läpäisee kaiken kattava
valehtelu. Venäläiset alkaneet pohtia julkisesti maan todellisia tappioita. Z-bloggari ja 3. luokan kapteeni (evp.) Mak1483340Kunnissa - siis myös kaupungeissa - viihtyvät ovat kommunisteja
Nehän ovat osa yhteiskunnan tuottamia instansseja, joista on vain haittaa veronmaksajille ja yrittäjlle, kuten ollaan ve32760- 1702242
Kansalla on oikeus tietää mikä on SDP:n talousohjelma jolla maan talous
saadaan nousuun? Miksi puolue piilottelee sitä, vai eikö sitä ole? Tähän asti olemme vaan saaneet kuulla hallituksen ha1031881Ammattiliitto 900 euroa/vuosi - Työttömyyskassa 72 euroa/vuosi
Ammattiliitosta eroamalla voi säästää jopa 800 euroa vuodessa. Mitä enemmän tienaat, sitä enemmän maksat liitolle. Esim1741806Miten voit olla niin tyhmä
että et tajunnut että sua vedätettiin? Tietäisitpä miten hyvät naurut on saatu. Naiselle1811696- 1391361
SDP todellisuudessa pahin pettäjä koskaan - se syyllistyi valtiopetokseen 1918
kun aloittivat kapinan maan laillista valtiojärjestystä vastaan. Punaiset saivat tukea Neuvosto-Venäjän bolsevikeilta,601347Iski taas katumus kun en jutellut sun kanssa
Silloin kun halusit. Mutta en enää voi sille mitään, en saa muutettua sitä hetkeä..1161119