„Ekseliu“ mėtau kauliuką…

Lapkričio 18, Ketvirtadienis

excel_kauliukas

Atverkite šį failą ir pastudijuokite, kaip tai padaryta:

kauliukas

Pastebėkite, kad kaskart ką nors pakeltus lape, progama automatiškai pateikia kitą „metimų“ seriją.

patiko(1)



RSS

atsakymai (14)

Marius, Lapkričio 18 14:36  #

Pastudijavau ;-)

Naudojama standartinė RAND() funkcija.
Po to – didelis IF’as, kuris atsitiktinį realųjį skaičių iš intervalo (0;1] paverčia į natūrinį skaičių iš intervalo [1..6].

Tačiau, jei reikėtų kauliuko 1..10 (toks naudojamas „Dungeons and Dragons“ žaidimuose), ar 1..36 („Sportloto“), ar dar didesnio – toks algoritmas taptų beveik neįmanomas dėl IF’o sudėtingumo.

Todėl C3 celėje parašykite formulę:
=TRUNC(B3*6;0)+1

Vietoje 6 galite parašyti kokią norite reikšmę – 12, 36, 49 ar kokią kitą, „keliabriaunis“ yra kauliukas.

> Pastebėkite, kad kaskart ką nors pakeltus lape, progama automatiškai pateikia kitą „metimų“ seriją.

Deja, ne visada, o tik tada, kai įjungtas automatinis formulių skaičiavimas. Jei jis išjungtas – reikia F9 paspausti kaskart, norint perskaičiuoti ;-)

patiko(0)



Marius, Lapkričio 18 14:39  #

P.S. Atsiprašau, RAND() generuoja realų skaičių iš intervalo [0;1) – t.y. nulis galimas, vienetas – ne, tik priartėjama prie jo.

Nepasitikrinau, rašydamas ;-)

patiko(0)



Burgis, Lapkričio 18 14:41  #

Ačiū, Gerb. Mariau, nuostabus papildymas!

patiko(0)



AED, Lapkričio 18 14:42  #

O gal papraščiau tiesiog =RAND()*6+0 ir suspaudžiam stulpelį kad automatiškai apvalintų? :-)

patiko(0)



apb, Lapkričio 18 14:59  #

Paprastesnis kauliuko imitatorius:
=INT(RAND()*(max-min)+min) +1, kur max – didžiausias kauliuko akių skaičius, min – mažiausias kauliuko akių skaičius.

patiko(0)



Marius, Lapkričio 18 15:05  #

Tada dar papildysiu uždavinį studentams, jei galima ;-)

Tikimybėms analizuoti gali būti naudinga matyti, kaip pasiskirsto iškritusios reikšmės. Didėjant lentelės eilučių skaičiui, atsitiktinumo faktorius turėtų mažėti, ir visoms 6 reikšmėms iškristi turėtų vienodas kauliukų skaičius.

Sukurkite tame pačiame Excel lape lentelę iš 6 eilučių, kurioje kaskart būtų suskaičiuojama, kiek šiuo metu yra iškritę „vienetukų“, „dvejetukų“ ir t.t.

Kokia formulė būtų įrašyta, tarkim, iškritusių 3-tukų suskaičiavimui?

patiko(0)



Marius, Lapkričio 18 15:25  #

apb: Jūsų formulė klaidinga. Įrašiau:
=INT(B3*(6-1)+1) +1
Vienetas neiškrenta niekada, pasiskirstymas neteisingas.

Turėtų, lygtai, būti taip:
=INT(RAND()*(max-min+1)+min)

kai min=1, o max=6, tai formulė pavirsta mano minėtaja, nes TRUNC(X;0) veikia taip pat, kaip INT(X).

patiko(0)



apb, Lapkričio 18 15:34  #

Taip, Mariau, Jūs esate teisus. Atsiprašau, tačiau pasimečiau savo min ir max žymėjimuose, mano „kauliuke“ buvo surašyti skaičiukai ir, perrašydamas formulę, paklydau loginėje sekoje :)

patiko(0)



VYTS, Lapkričio 18 18:14  #

=COUNTIF(A:A,“=3″)

patiko(0)



VYTS, Lapkričio 18 18:16  #

Tiksliau
=COUNTIF(C:C,“=3″)
šiuo atveju

patiko(0)



Burgis, Lapkričio 19 09:42  #

Ačiū, jūs šaunuoliai!

patiko(0)



Jonas, Lapkričio 20 09:48  #

Manau, kad paprasčiausia =RANDBETWEEN(1,6) daro tai, ko jum reikia :))

patiko(0)



mdalius, Lapkričio 20 11:35  #

Kiek daug variantų tam pačiam uždaviniui.
Dabar būtų gerai pasiaiškinti, kurį greičiau apskaičiuoja, kai reikšmių yra tikrai daug :)

patiko(0)



VYTS, Lapkričio 20 15:38  #

„Manau, kad paprasčiausia =RANDBETWEEN(1,6) daro tai, ko jum reikia :))“
Matyt tik naujose versijose yra tokia funkcija (pas mane nėra).

patiko(0)



XHTML

Leistinos XHTML žymos:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>