Harrastelija kirjoitti: ↑12 Tammi 2024, 07:31
Huvikseen ilmoitan kokeellisella simuloinnilla algoritmilla saadut likiarvot. Kritisoitiin kun olen ohjelmoinnut Pascalilla, joten ohjelmoin nyt sitten Javascriptillä.
Koodi: Valitse kaikki
<html>
<body>
<script>
function heitaNoppaa(n) {
let mahdollisetTulokset = 0;
let tavoiteSumma = 9;
function heitaYksiNoppa() {
return Math.floor(Math.random() * 6) + 1;
}
function laskeNoppienSumma() {
let summa = 0;
for (let i = 0; i < n; i++) {
summa += heitaYksiNoppa();
}
return summa;
}
const kokeilujenMaara = 10000000; // 10 miljoonaa. Voit säätää tätä tarvittaessa
for (let i = 0; i < kokeilujenMaara; i++) {
if (laskeNoppienSumma() === tavoiteSumma) {
mahdollisetTulokset++;
}
}
const todennakoisyys = mahdollisetTulokset / kokeilujenMaara;
console.log(`Todennäköisyys, että ${n} nopan heitossa summa on ${tavoiteSumma}: ${todennakoisyys}`);
}
// Kokeile eri arvoilla n
heitaNoppaa(2);
heitaNoppaa(3);
heitaNoppaa(4);
heitaNoppaa(5);
</script>
</body>
</html>
Ohjelman tulostus:
Todennäköisyys, että 2 nopan heitossa summa on 9: 0.1111356
Todennäköisyys, että 3 nopan heitossa summa on 9: 0.1155769
Todennäköisyys, että 4 nopan heitossa summa on 9: 0.0432631
Todennäköisyys, että 5 nopan heitossa summa on 9: 0.009035
Well done! Hyvin laskettu!
Laskit hyvin nopeasti oikeat todennäköisyydet. Ainakin simulointi on hallussa.
Muistin tämän tehtävän jossain muodossa ja muistin että minulla on jossain laskettuna ne vastaavan tehtävän tulokset. En sitten löytänytkään niitä, joten meni aikaa, kunnes löysin yhdestä kirjastani yleisen teorian tuollaisiin kysymyksiin.
Oikeat vastaukset (toivottavasti )ovat:
Todennäköisyys, että 2 nopan heitossa summa on 9: 1/9
Todennäköisyys, että 3 nopan heitossa summa on 9: 25/216
Todennäköisyys, että 4 nopan heitossa summa on 9: 7/162
Todennäköisyys, että 5 nopan heitossa summa on 9: 35/3888
Kun näitä vertaa sun numeerisiin tuloksiin on tulokset hyvin lähellä toisiaan.
En saanut tuota JS koodia toimimaan sellaisenaan, mutta oikealta se vaikuttaa idealtaan. Olen nyt kirjoittamassa koodia, joka laskee saman ja kirjoittaa sen "hienosti" HTML:n sekaan tyyleineen Siis, yhtenä positiivisena tuloksena minulle koodistasi on se, että olen nyt kertaillut Javascriptin HTML:n ja CSS:n keskinäistä "vuorovaikutusta"