/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
berpox 610
creamygirl 610
3773 570
10  jomfruane 570
Terningkast - Yatzy
Fra : Stefan Garvig


Dato : 29-03-05 19:35

I forlængelse af min tidligere tråd om terningkast vil jeg spørge jer, om I
kender til sites, der omhandler sandsynligheden i forbindelsen med kast med
terninger - gerne med rod i Yatzy-spillet?
Jeg har søgt på Google.dk, uden held.

Konkret kunne jeg tænke mig at vide:

Hvad er sandsynligheden for med fem terninger og i maksimalt tre kast med
alle fem terninger at slå Høj ( 6,5,4,3,2) eller Lav (5,4,3,2,1) i et og
samme slag - det, som flere kalder født Høj eller Lav?

Jeg har mange flere spørgsmål om sandsynligheder i Yatzy - så hvis nogen
kender til en Yatzy-sandsynlighedsregnemaskine, så giv endelig lyd.


Bedste hilsner fra

Stefan Garvig



 
 
Jens Axel Søgaard (29-03-2005)
Kommentar
Fra : Jens Axel Søgaard


Dato : 29-03-05 20:35

Stefan Garvig wrote:

> Jeg har mange flere spørgsmål om sandsynligheder i Yatzy - så hvis nogen
> kender til en Yatzy-sandsynlighedsregnemaskine, så giv endelig lyd.

Havde Torben ikke et terningeprogram? Hvad var det nu det hed ...

--
Jens Axel Søgaard


Jens Axel Søgaard (29-03-2005)
Kommentar
Fra : Jens Axel Søgaard


Dato : 29-03-05 20:38

Jens Axel Søgaard wrote:

> Stefan Garvig wrote:
>
>> Jeg har mange flere spørgsmål om sandsynligheder i Yatzy - så hvis nogen
>> kender til en Yatzy-sandsynlighedsregnemaskine, så giv endelig lyd.
>
> Havde Torben ikke et terningeprogram? Hvad var det nu det hed ...

<http://www.diku.dk/~torbenm/Dice.zip>

--
Jens Axel Søgaard



Stefan Garvig (02-04-2005)
Kommentar
Fra : Stefan Garvig


Dato : 02-04-05 14:23

> Havde Torben ikke et terningeprogram? Hvad var det nu det hed ...

<http://www.diku.dk/~torbenm/Dice.zip>

--
Jens Axel Søgaard

Hej Jens Axel

Der er ikke noget exe-program med i zip-filen. Så hvordan får jeg
dice-programmet til at køre?


Venligst

Stefan

--
**********
Svar direkte ved at fjerne dyret i e-mail-adressen:
sgdataged@edb.dk
**********





Jens Axel Søgaard (02-04-2005)
Kommentar
Fra : Jens Axel Søgaard


Dato : 02-04-05 15:31

Stefan Garvig wrote:

>>Havde Torben ikke et terningeprogram? Hvad var det nu det hed ...

> <http://www.diku.dk/~torbenm/Dice.zip>

> Der er ikke noget exe-program med i zip-filen. Så hvordan får jeg
> dice-programmet til at køre?

Hej Stefan,

Da jeg postede mit første brev havde jeg glemt, det ikke
var en exe-fil med (det var der vist i første version).

Som Henning skriver, så skal man hente og installere
Moscow ML hos <http://dina.kvl.dk/~sestoft/mosml> først.
Derefter udpakkes zip-filen (og eventuelt skal filrettighederne
ændres, så man får skriverettigheder). Dernæst skal du
køre compile.bat, hvis du er på Windows.

--
Jens Axel Søgaard


Henning Makholm (02-04-2005)
Kommentar
Fra : Henning Makholm


Dato : 02-04-05 14:30

Scripsit "Stefan Garvig" <sgdataGED@edb.dk>

> <http://www.diku.dk/~torbenm/Dice.zip>

> Der er ikke noget exe-program med i zip-filen. Så hvordan får jeg
> dice-programmet til at køre?

Du skal selv oversætte det. Det kræver Moscow ML, som findes på
<http://dina.kvl.dk/~sestoft/mosml>. Når du har installeret det kan du
bruge en af de medleverede compile.bat og compile.csh til at styre
oversættelsen.


--
Henning Makholm "Vi skal nok ikke begynde at undervise hinanden i
den store regnekunst her, men jeg vil foreslå, at vi fra
Kulturministeriets side sørger for at fremsende tallene og også
give en beskrivelse af, hvordan man læser tallene. Tak for i dag!"

Torben Ægidius Mogen~ (04-04-2005)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 04-04-05 09:25

Henning Makholm <henning@makholm.net> writes:

> Scripsit "Stefan Garvig" <sgdataGED@edb.dk>
>
> > <http://www.diku.dk/~torbenm/Dice.zip>
>
> > Der er ikke noget exe-program med i zip-filen. Så hvordan får jeg
> > dice-programmet til at køre?
>
> Du skal selv oversætte det. Det kræver Moscow ML, som findes på
> <http://dina.kvl.dk/~sestoft/mosml>. Når du har installeret det kan du
> bruge en af de medleverede compile.bat og compile.csh til at styre
> oversættelsen.

Jeg anbefaler iøvrigt, at man ved kørsel under Windows bruger en
teksteditor, der kan køre DOS kommandoer i et editorvindue. Jeg
bruger selv XEmacs (http://www.xemacs.org/), men f.eks. UE-32 kan også
bruges.

Torben

John Smith (29-03-2005)
Kommentar
Fra : John Smith


Dato : 29-03-05 22:06

Stefan Garvig wrote:

> Jeg har mange flere spørgsmål om sandsynligheder i Yatzy - så hvis nogen
> kender til en Yatzy-sandsynlighedsregnemaskine, så giv endelig lyd.

For at kunne få godkendt en spillemaskine i Las Vegas, skal man kunne
redegøre for alle udfald og sandsynligheder maskinen kan give. Det så
jeg på Discovery Channal at der var en mand der havde beregnet og dermed
sat en Yatzy maskine i produktion derovre.
Måske ikke særligt konkret svar, men en kommentar der muligvis kan lede
dig videre...

--
Mvh
John Smith

Thor (29-03-2005)
Kommentar
Fra : Thor


Dato : 29-03-05 22:34

Intuitivt skud fra hoften, håber det er rigtigt:

P (høj eller lav) = 1* 5/6 * 4/6 * 3/6 * 2/6

Første terning altid ok,
anden er ok med 5/6 sandsynlighed
tredje er ok med 4/6 sandsynlighed etc

P(høj) = P(lav) = 5/6 * 4/6 * 3/6 * 2/6 * 1/6

første terning er ok med 5/6 sandsynlighed
anden er ok med 4/6 sandsynlighed etc

Det er altså 6 gange mere sandsynligt at få en tilfældig af de to end en
bestemt.

Med en basissandsynlighed på p, er sandsynligheden Pn ved n forsøg:

Pn = 1-(1-p)^n

du kan regne efter i googles søgefelt.

mvh Thor





Martin Larsen (29-03-2005)
Kommentar
Fra : Martin Larsen


Dato : 29-03-05 23:17

"Thor" <thor@thor.thor> skrev i en meddelelse news:4249c956$0$43993$14726298@news.sunsite.dk...
> Intuitivt skud fra hoften, håber det er rigtigt:
>
> P (høj eller lav) = 1* 5/6 * 4/6 * 3/6 * 2/6
>
> Første terning altid ok,
> anden er ok med 5/6 sandsynlighed
> tredje er ok med 4/6 sandsynlighed etc
>
Næh, det argument dur ikke. Ellers er det du skriver rigtigt.
Hvis du har muligheden for at erstatte den "høje" med den "lave"
bliver sandsynligheden simpelthen den dobbelte. Jeg fik 0,08976.

Mvh
Martin



Thor (30-03-2005)
Kommentar
Fra : Thor


Dato : 30-03-05 15:29

>>
> Næh, det argument dur ikke. Ellers er det du skriver rigtigt.
> Hvis du har muligheden for at erstatte den "høje" med den "lave"
> bliver sandsynligheden simpelthen den dobbelte. Jeg fik 0,08976.
>
Jamen det er jo korrekt, jeg kom til at beregne sandsynligheden for
5 forskellige terninger i stedet for...

mvh Thor



Martin Larsen (30-03-2005)
Kommentar
Fra : Martin Larsen


Dato : 30-03-05 15:54

"Thor" <thor@thor.thor> skrev i en meddelelse news:424ab73c$0$43983$14726298@news.sunsite.dk...
> >>
> > Næh, det argument dur ikke. Ellers er det du skriver rigtigt.
> > Hvis du har muligheden for at erstatte den "høje" med den "lave"
> > bliver sandsynligheden simpelthen den dobbelte. Jeg fik 0,08976.
> >
> Jamen det er jo korrekt, jeg kom til at beregne sandsynligheden for
> 5 forskellige terninger i stedet for...
>
Det kan du så evt genbruge hvis der bliver spurgt om 2 eller flere ens.

Mvh
Martin



Jens Axel Søgaard (29-03-2005)
Kommentar
Fra : Jens Axel Søgaard


Dato : 29-03-05 23:21

Thor wrote:

> Intuitivt skud fra hoften, håber det er rigtigt:
>
> P (høj eller lav) = 1* 5/6 * 4/6 * 3/6 * 2/6

> (* 1 5/6 4/6 3/6 2/6)
5/54

> (* 1.0 5/6 4/6 3/6 2/6)
0.09259259259259259


I Torbens Dice giver denne konstruktion
samme resultat:

let c=5#d6 in
(=5 (count (=1 (foreach x in 1..6 do
(count (=x c))))))

denne udskrift

C:\mosml\soegaard\Dice>roll yatzy.d 0
Value Probability for = Probability for <
: 0.907407407407 0.0
5 : 0.0925925925926 0.907407407407

Average = 0.462962962963 Spread = 1.44930331875

let c=5#d6 Slå med 5 6-sidede terninger
og kald resultatet c

count (=x c) Tæl hvor mange af terningerne der er lig x

foreach x in 1..6 For hvert tal fra 1 til 6 tæl hvor
(count (=x c)) mange der er af hver

(count (=1 Tæl hvormange gange vi kom frem til 1
(foreach x in 1..6
do (count (=x c)))))

Hvis vi fem gange kom til resultet 1 betyder det, at alle
terningerne var forskellige.

Dvs.

P(alle forskellige) = 0.0925925925926


> Første terning altid ok,
> anden er ok med 5/6 sandsynlighed
> tredje er ok med 4/6 sandsynlighed etc
>
> P(høj) = P(lav) = 5/6 * 4/6 * 3/6 * 2/6 * 1/6

> (* 1.0 5/6 4/6 3/6 2/6 1/6)
0.015432098765432098


Hvis vi skal have en lav, så kan vi nøjes med at lade x tælle til 5.

let c=5#d6 in
(=5 (count (=1 (foreach x in 1..5 do (count (=x c))))))

Value Probability for = Probability for <
: 0.984567901235 0.0
5 : 0.0154320987654 0.984567901235

Average = 0.0771604938272 Spread = 0.616318689744

Dvs.

P(lav) = 0.0154320987654

>
> første terning er ok med 5/6 sandsynlighed
> anden er ok med 4/6 sandsynlighed etc
>
> Det er altså 6 gange mere sandsynligt at få en tilfældig af de to end en
> bestemt.

Som du skriver, så er P(høj)=P(lav) og da man ikke kan få
høj og lav samtidig, så må P(høj eller lav) = P(høj)+P(lav) = 2 P(lav).

--
Jens Axel Søgaard


Torben Ægidius Mogen~ (30-03-2005)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 30-03-05 12:30

Jens Axel Søgaard <usenet@soegaard.net> writes:

> Thor wrote:
>
> > Intuitivt skud fra hoften, håber det er rigtigt:
> > P (høj eller lav) = 1* 5/6 * 4/6 * 3/6 * 2/6
>
> > (* 1 5/6 4/6 3/6 2/6)
> 5/54
>
> > (* 1.0 5/6 4/6 3/6 2/6)
> 0.09259259259259259
>
>
> I Torbens Dice giver denne konstruktion
> samme resultat:
>
> let c=5#d6 in
> (=5 (count (=1 (foreach x in 1..6 do
> (count (=x c))))))
>
> denne udskrift
>
> C:\mosml\soegaard\Dice>roll yatzy.d 0
> Value Probability for = Probability for <
> : 0.907407407407 0.0
> 5 : 0.0925925925926 0.907407407407
>
> Average = 0.462962962963 Spread = 1.44930331875
>
> let c=5#d6 Slå med 5 6-sidede terninger
> og kald resultatet c
>
> count (=x c) Tæl hvor mange af terningerne der er lig x
>
> foreach x in 1..6 For hvert tal fra 1 til 6 tæl hvor
> (count (=x c)) mange der er af hver
>
> (count (=1 Tæl hvormange gange vi kom frem til 1
> (foreach x in 1..6
> do (count (=x c)))))
>
> Hvis vi fem gange kom til resultet 1 betyder det, at alle
> terningerne var forskellige.
>
> Dvs.
>
> P(alle forskellige) = 0.0925925925926

Men det er ikke nok, at alle terningerne er forskellige. Det vil jo
også inkludere f.eks. 1,2,3,5,6, som hverken er stor eller lille
straight.

Du kan modificere programmet til:


let c=5#d6 in
(=5 (count (=1 (foreach x in 1..5 do
(count (=x c))))))

dvs., at du ser om alle tallene mellem 1 og 5 forekommer blandt de fem
terninger. Det giver altså sandsynligheden for en lille straight
("lav"). Sandsynligheden for en stor straight ("høj") er den samme,
og der er ikke overlap mellem store og små straights, så den samlede
sandsynlighed er den dobbelte af den, som programmet giver. Hvilket
er:

Value Probability for = Probability for <
: 0.984567901235 0.0
5 : 0.0154320987654 0.984567901235

Der er altså 1.5432% sandsynlighed for en "født" lille straight og
dermed 3.0864% for enten stor eller lille straight. Hvis man har tre
slag og ikke gemmer nogle af terningerne melllem slagene, er
sandsynligheden for en straight (stor eller lille) 1-(1-0.030864...)^3
= 0.0897641 eller 8.976%. Hvis man kun kan bruge en lille (eller
stor) straight, er sandsynligheden i tre kast lig med
1-(1-0.015432...)^3 = 0.0455856 eller 4.559%.

Det virker måske lidt underligt, at den anden sandsynlighed er mere
end halvdelen af den første, men det skyldes at man i første tilfælde
stopper, når man har eneten en lille eller stor straight, så antallet
af lille straight er lidt mindre (hvis man i første kast får en stor
straight, misser man chancen for at få en lille straight i andet eller
tredje slag).

Torben

Jens Axel Søgaard (30-03-2005)
Kommentar
Fra : Jens Axel Søgaard


Dato : 30-03-05 12:57

Torben Ægidius Mogensen wrote:
> Jens Axel Søgaard <usenet@soegaard.net> writes:

>>I Torbens Dice giver denne konstruktion
>>samme resultat:
>>
>> let c=5#d6 in
>> (=5 (count (=1 (foreach x in 1..6 do
>> (count (=x c))))))

>>Dvs.
>>
>> P(alle forskellige) = 0.0925925925926
>
>
> Men det er ikke nok, at alle terningerne er forskellige. Det vil jo
> også inkludere f.eks. 1,2,3,5,6, som hverken er stor eller lille
> straight.

Den er jeg med på - ovenstående skulle forklare, hvad Thor kom til
at regne ud.

> Du kan modificere programmet til:

> let c=5#d6 in
> (=5 (count (=1 (foreach x in 1..5 do
> (count (=x c))))))

Det stod lidt længere nede

> dvs., at du ser om alle tallene mellem 1 og 5 forekommer blandt de fem
> terninger. Det giver altså sandsynligheden for en lille straight
> ("lav").

I manualen skriver du, at det i den første version groft sagte gik
alle muligheder igennem, men at det i nuværende version er lidt smartere.
Hvilken metode bruger programmet nu internt?

--
Jens Axel Søgaard


Torben Ægidius Mogen~ (31-03-2005)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 31-03-05 09:20

Jens Axel Søgaard <usenet@soegaard.net> writes:


> I manualen skriver du, at det i den første version [af
> terningekastprogrammet] groft sagte gik alle muligheder igennem, men
> at det i nuværende version er lidt smartere. Hvilken metode bruger
> programmet nu internt?

I værste fald falder programmet stadig tilbage på at gennemgå alle
muligheder, men det udnytter nogle algebraiske egenskaber ved nogle af
operationerne. Grundlæggende, forsøger programmet at udskyde
sammensætning af to (sandsynlighedsfordelinger af) samlinger af
terninger indtil der udføres en operation på den kombinerede samling,
og når dette sker undersøger den om operationen kan beregnes på de
enkelte delsamlinger uafhængigt af hinanden.

Eksempel: Find summen af N tisidede terninger. Den naive metode vil
først generere alle 10^N mulige måder at slå N tisidede terninger,
derefter finde summen af hver af disse og til sidst tælle hvor mange,
der har hver sum. Det giver et tidsforbrug på ca. N*10^N. Den
forbedrede version laver et træ af N kopier af fordelingen for en
terning:

@
/ \
F @
/ \
F @
:
@
/ \
F F

hvor F er fordelingen [1: 0.1, 2: 0.1, ..., 10: 0.1], dvs at hvert tal
har sandsynligheden 0.1. For at finde fordelingen for summen, starter
man i bunden af træet og finder en fordeling for F2 = sum (F @ F): [2:
0.01, 3: 0.02, ..., 19: 0.02, 20:0.01]. Dette gøres ved at finde alle
100 kombinationer. Dernæst findes fordelingen for F3 = sum (F @ F2):
[3: 0.001, 4: 0.003, 5: 0.006,..., 30: 0.001]. Det sker ved alle 190
kombinationer af 10 tal i F og 19 tal i F2. Dette gentages hele vejen
op gennen træet, så den samlede tid bliver 100+190+280+...190*(N-1),
eller ca. 95*N*(N-1) i stedet for N*10^N, altså fra eksponentiel tid
til kvadratisk.

Det samme nummer kan bruges for andre funktioner udover sum. Jeg
skelner mellem to slags funktioner, der kan udnytte lignende
optimeringer: En funktion f er lineær, hvis f(F1 @ F2) = f(F1)@f(F2).
Dette gælder f.eks. for <N operatoren (der fjerner tal >=N). En
funktion f er semilineær, hvis f(F1 @ F2) = g(f(F1), f(F2)), for en
eller anden funktion g. Det gælder for sum og count, hvor g er +
(forskellen ligger i værdien af f for samlinger af et element), og for
least N, hvor g(x,y) = least N (x @ y).

Et sted, hvor denne optimering bryder sammen, er ved brug af
let-udtryk, da to forekomster af den let-bundne variabel er afhængige,
så man blver nødt til at beregne fordelingen for den let-bundne
variabel i bund inden kroppen beregnes. Så let x = 10#d10 in sum x er
væsentligt langsommere end sum (10#d10).

Torben


Jens Axel Søgaard (31-03-2005)
Kommentar
Fra : Jens Axel Søgaard


Dato : 31-03-05 13:54

Torben Ægidius Mogensen wrote:
> Jens Axel Søgaard <usenet@soegaard.net> writes:

>>I manualen skriver du, at det i den første version [af
>>terningekastprogrammet] groft sagte gik alle muligheder igennem, men
>>at det i nuværende version er lidt smartere. Hvilken metode bruger
>>programmet nu internt?
>
> I værste fald falder programmet stadig tilbage på at gennemgå alle
> muligheder, men det udnytter nogle algebraiske egenskaber ved nogle af
> operationerne. Grundlæggende, forsøger programmet at udskyde
> sammensætning af to (sandsynlighedsfordelinger af) samlinger af
> terninger indtil der udføres en operation på den kombinerede samling,
> og når dette sker undersøger den om operationen kan beregnes på de
> enkelte delsamlinger uafhængigt af hinanden.

Tak for den fine forklaring.

Jeg pønser lidt på at overføre programmet til Scheme - der skal
dog tænkes lidt først.

--
Jens Axel Søgaard


Martin Larsen (31-03-2005)
Kommentar
Fra : Martin Larsen


Dato : 31-03-05 14:00

"Torben Ægidius Mogensen" <torbenm@diku.dk> skrev i en meddelelse news:7z1x9wfcri.fsf@app-2.diku.dk...

> Det giver et tidsforbrug på ca. N*10^N. Den
> forbedrede version laver et træ af N kopier af fordelingen for en
> terning:
>
Et træ kalder du det, men for mit naive blik ligner det bare
en liste (array) med fordelingsfunktionerne. Eller kalder du
alt for træer?

Mvh
Martin



Torben Ægidius Mogen~ (01-04-2005)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 01-04-05 17:16

"Martin Larsen" <mlarsen@post7.tele.dk> writes:

> "Torben Ægidius Mogensen" <torbenm@diku.dk> skrev i en meddelelse news:7z1x9wfcri.fsf@app-2.diku.dk...
>
> > Det giver et tidsforbrug på ca. N*10^N. Den
> > forbedrede version laver et træ af N kopier af fordelingen for en
> > terning:
> >
> Et træ kalder du det, men for mit naive blik ligner det bare
> en liste (array) med fordelingsfunktionerne. Eller kalder du
> alt for træer?

Optimeringen kan håndtere vilkårlige træer, men N#d6 genererer et
maksimalt ubalanceret træ (det viste sig at give de bedste
resultater).

Torben


Henrik Christian Gro~ (30-03-2005)
Kommentar
Fra : Henrik Christian Gro~


Dato : 30-03-05 08:11

"Thor" <thor@thor.thor> writes:

> Intuitivt skud fra hoften, håber det er rigtigt:
>
> P (høj eller lav) = 1* 5/6 * 4/6 * 3/6 * 2/6
>
> Første terning altid ok,
> anden er ok med 5/6 sandsynlighed
> tredje er ok med 4/6 sandsynlighed etc

Det holder ikke. Hvis første terning giver en 1'er, er sandsynligheden for
at anden terning er brugbar kun 4/6.

Det er så nok grunden til at du når til følgende åbenlyst forkerte
resultat:

> Det er altså 6 gange mere sandsynligt at få en tilfældig af de to end en
> bestemt.

(Det er åbenlyst forkert fordi P(A eller B) <= P(A)+P(B).
Jens har allerede argumentet fuldt korrekt for der gælder lighedstegn).

..Henrik

--
"Og jeg troede UENDELIG var et stort tal!"
-sagt efter en matematikforelæsning om transfinitte kardinaltal

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste