/ 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
sandsynlighed
Fra : Jacob Jensen


Dato : 25-07-02 22:00

Hvad er sandsynligheden for yatzy i 3 slags med 5 terninger...

Det skal bare være 5 ens.. ikke nødvendigvis 6'ere
Man må godt bytte ud mellem slagene osv. F.eks. lade 2 seksere ligge og slå
videre med de 3 andre.

MVH
Jacob Jensen



 
 
Torben Ægidius Mogen~ (26-07-2002)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 26-07-02 11:37

"Jacob Jensen" <omo@privat.dk> writes:

> Hvad er sandsynligheden for yatzy i 3 slags med 5 terninger...
>
> Det skal bare være 5 ens.. ikke nødvendigvis 6'ere
> Man må godt bytte ud mellem slagene osv. F.eks. lade 2 seksere ligge og slå
> videre med de 3 andre.

Denne Roll-definition giver sandsynlighederne for at slå et
forskelligt antal 6'ere i Yathzy:

let a = count =6 5#d6 in \ count 6's in first roll
let b = count =6 ((5-a)#d6) in \ count 6's in second roll
a + b + count =6 ((5-a-b)#d6) \ add 6's in third roll

Det giver følgende:

Value % = % <
0 : 6.49054715189 0.0
1 : 23.6255916329 6.49054715189
2 : 34.3988614175 30.1161387848
3 : 25.0423711119 64.5150002022
4 : 9.11542308474 89.5573713141
5 : 1.32720560114 98.6727943989

Chancen for at slå 5 6'ere er altså ca. 1.3%. Hvis du er ligeglad med
terningens størrelse, ganger du bare med 6, altså 7.96% for en yathzy
uanset størrelse.

Chancen ændrer sig ikke ved at man kan skifte hest undervejs.

   Torben


Henning Makholm (26-07-2002)
Kommentar
Fra : Henning Makholm


Dato : 26-07-02 12:19

Scripsit torbenm@diku.dk (Torben Ægidius Mogensen)

> Hvis du er ligeglad med terningens størrelse, ganger du bare med 6,
> altså 7.96% for en yathzy uanset størrelse.

Øh, nej. Hvis dit første slag er fem forskellige, får du ikke 6 gange
så stor sandsynlighed for at ende med en yatzy ved at du har lov til
at vælge hvilken af dem du vil sætte til side.

--
Henning Makholm "Okay, okay, life's a beach."

Torben Ægidius Mogen~ (26-07-2002)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 26-07-02 12:23

torbenm@diku.dk (Torben Ægidius Mogensen) writes:

> "Jacob Jensen" <omo@privat.dk> writes:
>
> > Hvad er sandsynligheden for yatzy i 3 slags med 5 terninger...
> >
> > Det skal bare være 5 ens.. ikke nødvendigvis 6'ere
> > Man må godt bytte ud mellem slagene osv. F.eks. lade 2 seksere ligge og slå
> > videre med de 3 andre.

> Chancen for at slå 5 6'ere er altså ca. 1.3%. Hvis du er ligeglad med
> terningens størrelse, ganger du bare med 6, altså 7.96% for en yathzy
> uanset størrelse.

Det sidste er faktisk forkert: Man kan ikke bare gange med 6, da
sandsynlighederne ikke er uafhængige. De 1.3% chance for at slå 5
6'ere skyldes at man bruger en strategi for at opnå så mange 6'ere så
muligt. Hvis man ændrer strategien ændrer man forudsætningerne, så man
ikke kan lægge sandsynlighederne sammen.

Strategien med at beholde det største antal ens terninger (selv om det
medfører udskiftning) kan godt beskrives i Roll, men det bliver mere
kompliceret:


let a = 5#d6 in \ Slå 5 terninger
let b = largest 1 (foreach n in 1..6 do count =n a) in
          \ Find størst antal ens

let c = b#6 @ (5-b)#d6 in \ Antag de er 6'ere og rul resten
let e = largest 1 (foreach n in 1..6 do count =n c) in
\ Find nye største antal ens

let f = e#6 @ (5-e)#d6 in \ Antag de er 6'ere og rul resten
largest 1 (foreach n in 1..6 do count =n f)
\ Find endelige største antal ens


Det giver:

Value % = % <
1 : 0.079383224102 0.0
2 : 25.6010897729 0.079383224102
3 : 45.2401686523 25.680472997
4 : 24.4764940981 70.9206416493
5 : 4.60286425257 95.3971357474

Altså ca. 4.6% chance for en yathzy.

   Torben

Jacob Jensen (26-07-2002)
Kommentar
Fra : Jacob Jensen


Dato : 26-07-02 20:42

> Altså ca. 4.6% chance for en yathzy.

Det er i hvert fald ikke rigtigt. Du får da ikke yatzy for hvert ca 22 ture
i yatzy. Det svarer til at hver spiller i gennemsnit får over 1 yatzy pr.
spil. Den må være noget lavere.



Jens Axel Søgaard (26-07-2002)
Kommentar
Fra : Jens Axel Søgaard


Dato : 26-07-02 22:05

Jacob Jensen wrote:
>> Altså ca. 4.6% chance for en yathzy.
>
> Det er i hvert fald ikke rigtigt. Du får da ikke yatzy
> for hvert ca 22 ture i yatzy. Det svarer til at hver
> spiller i gennemsnit får over 1 yatzy pr. spil. Den må
> være noget lavere.

De 4.6% er under forudsætning, at hver eneste gang
går efter at få yatzy. Det vil man normalt ikke gøre
i praksis.

--
Jens Axel Søgaard




Jeppe Stig Nielsen (26-07-2002)
Kommentar
Fra : Jeppe Stig Nielsen


Dato : 26-07-02 23:52

"Torben Ægidius Mogensen" wrote:
>
> Altså ca. 4.6% chance for en yathzy.

Skal vi ikke have det *eksakte* tal?

--
Jeppe Stig Nielsen <URL:http://jeppesn.dk/>. «

"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)

Thomas Thorsen (27-07-2002)
Kommentar
Fra : Thomas Thorsen


Dato : 27-07-02 01:49

Jeppe Stig Nielsen skrev:

> Skal vi ikke have det *eksakte* tal?

347897/7558272

TT




Jeppe Stig Nielsen (28-07-2002)
Kommentar
Fra : Jeppe Stig Nielsen


Dato : 28-07-02 14:53

Thomas Thorsen wrote:
>
> Jeppe Stig Nielsen skrev:
>
> > Skal vi ikke have det *eksakte* tal?
>
> 347897/7558272

Det kan faktisk godt passe, for din nævner (7558272) er divisor i en
potens af 6. Men jeg er nu ikke helt sikker ...

--
Jeppe Stig Nielsen <URL:http://jeppesn.dk/>. «

"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)

Thomas Thorsen (28-07-2002)
Kommentar
Fra : Thomas Thorsen


Dato : 28-07-02 18:12

Jeppe Stig Nielsen skrev:

> Det kan faktisk godt passe, for din nævner (7558272) er divisor i en
> potens af 6. Men jeg er nu ikke helt sikker ...

Jeg har lavet en relativt simpel udregning i et regneark hvor alle 7776
slagkombinationer er listet op når der lagt henholdsvis 0, 1, 2, 3 og 4
terninger ud før slaget. Der er naturligvis taget højde for evt. skifte af
hvilke terninger man samler på.

Efter 1 slag:

1 ens 120/1296
2 ens 900/1296
3 ens 250/1296
4 ens 25/1296
5 ens 1/1296

Efter 2 slag:

1 ens 600/69984
2 ens 31500/69984
3 ens 28625/69984
4 ens 8375/69984
5 ens 884/69984

Efter 3 slag:

1 ens 6000/7558272
2 ens 1935000/7558272
3 ens 3419375/7558272
4 ens 1850000/7558272
5 ens 347897/7558272

Sandsynligheden for 1, 2, 3, 4 og 5 ens efter slaget når der er lagt 1
terning ud før slaget:

1 ens 120/1296
2 ens 900/1296
3 ens 250/1296
4 ens 25/1296
5 ens 1/1296

Denne fordeling er den samme som hvis man har 0 ens før slaget.

Sandsynligheden for 2, 3, 4 og 5 ens efter slaget når der er lagt 2
terninger ud før slaget:

2 ens 120/216
3 ens 80/216
4 ens 15/216
5 ens 1/216

Sandsynligheden for 3, 4 og 5 ens efter slaget når der er lagt 3 terninger
ud før slaget:

3 ens 25/36
4 ens 10/36
5 ens 1/36

Sandsynligheden for 4 og 5 ens efter slaget når der er lagt 3 terninger ud
før slaget:

4 ens 5/6
5 ens 1/6

TT




Jeppe Stig Nielsen (28-07-2002)
Kommentar
Fra : Jeppe Stig Nielsen


Dato : 28-07-02 19:01

Thomas Thorsen wrote:
>
> Jeppe Stig Nielsen skrev:
>
> > Det kan faktisk godt passe, for din nævner (7558272) er divisor i en
> > potens af 6. Men jeg er nu ikke helt sikker ...
>
> Jeg har lavet en relativt simpel udregning i et regneark hvor alle 7776
> slagkombinationer er listet op når der lagt henholdsvis 0, 1, 2, 3 og 4
> terninger ud før slaget. Der er naturligvis taget højde for evt. skifte af
> hvilke terninger man samler på.
>[...]

Dette overbeviser mig.

> Denne fordeling er den samme som hvis man har 0 ens før slaget.

Det betyder at hvis alle terningerne er (parvist) forskellige efter
et slag, må man selv om man vil lægge én terning fra, eller om man
vil slå alle terningerne om.

(NB! Hvis en yatzy med 6'ere er mere værd en én med 1'ere, skal man
nok lige overveje en ekstra gang om man ikke vil tage en terning fra.)

--
Jeppe Stig Nielsen <URL:http://jeppesn.dk/>. «

"Je n'ai pas eu besoin de cette hypothèse (I had no need of that
hypothesis)" --- Laplace (1749-1827)

Lasse Reichstein Nie~ (26-07-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 26-07-02 13:03

torbenm@diku.dk (Torben Ægidius Mogensen) writes:

> Denne Roll-definition giver sandsynlighederne for at slå et
> forskelligt antal 6'ere i Yathzy:

Spændende programmeringssporg! Hvor kan man finde det?

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Jens Axel Søgaard (26-07-2002)
Kommentar
Fra : Jens Axel Søgaard


Dato : 26-07-02 16:39

Lasse Reichstein Nielsen wrote:
> torbenm@diku.dk (Torben Ægidius Mogensen) writes:
>
>> Denne Roll-definition giver sandsynlighederne for at slå
>> et forskelligt antal 6'ere i Yathzy:
>
> Spændende programmeringssporg! Hvor kan man finde det?

Søg på Torben i Google
Der er et link på forsiden.

http://www.diku.dk/users/torbenm/Dice.zip

--
Jens Axel Søgaard




Lasse Reichstein Nie~ (26-07-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 26-07-02 17:27

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

> Søg på Torben i Google
> Der er et link på forsiden.
>
> http://www.diku.dk/users/torbenm/Dice.zip

Takker. Jeg prøver så at få MosML til at compile i min Cygwin (for
stædig til at bruge windows-versionen :).

Det er præcist det program jeg altid har haft lyst til at skrive, men
aldrig er blevet færdig med (og lidt simplere og samtidigt smartere
selvfølgelig, Torben er for sej!)

Jeg er ikke helt sikker på at jeg forstår valget af notation for
repeat (altså at bruge "let _=_ in repeat _" i stedet for
f.eks. "repeat _=_ in _"), men der er sikkert en god grund. :)

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com 'Faith without judgement
merely degrades the spirit divine.'

Jens Axel Søgaard (26-07-2002)
Kommentar
Fra : Jens Axel Søgaard


Dato : 26-07-02 22:02

Lasse Reichstein Nielsen wrote:
> "Jens Axel Søgaard" <usenet@soegaard.net> writes:
>
>> Søg på Torben i Google
>> Der er et link på forsiden.
>>
>> http://www.diku.dk/users/torbenm/Dice.zip
>
> Takker. Jeg prøver så at få MosML til at compile i min
> Cygwin (for stædig til at bruge windows-versionen :).

Jeg var knap så sart og installerede Windows-versionen.

Jeg sad først og tænkte over eksemplerne, og hvordan
det fungerer internt. Jeg troede, jeg havde den,
men

let x = d6
in x+x

krævede lige lidt ekstra overvejelse. Så kiggede jeg i koden.
Den ser nydelig ud og virker cirka som jeg gættede.
Cirkaet skyldes, at Torben har tænkt sig godt om for
at reducere på antallet af kombinationer, der skal undersøges.

> Jeg er ikke helt sikker på at jeg forstår valget af
> notation for repeat (altså at bruge "let _=_ in repeat _"
> i stedet for f.eks. "repeat _=_ in _"), men der er
> sikkert en god grund. :)


> Det er præcist det program jeg altid har haft lyst til at
> skrive,

Har det noget med rollespil at gøre? [Hils Rune]

> men aldrig er blevet færdig med (og lidt simplere
> og samtidigt smartere selvfølgelig, Torben er for sej!)

Ja - jeg er også blevet helt fascineret. Mon ikke man skulle
tage sig sammen og lave en neddroslet version. Jeg leger lidt
med tanken om at implementere det ved hjælp af
McCarthys amb (som jeg har kaldt vælg nedenunder).
Men det svære er selvfølgelig at gøre det effektivt.


For dem der ikke kender amb, så kast et blik
på nedenstående. Vælg vælger et af elementerne
i listen. Hvis kravet i kræv ikke er opfyldt "spoles" tilbage,
og et nyt valg træffes.

Velkommen til DrScheme, version 200.
Sprog: Temmelig omfattende Scheme speciel.
> (define (tyve-med-fire-terninger)
(let ([a (vælg 1 2 3 4 5 6)]
[b (vælg 1 2 3 4 5 6)]
[c (vælg 1 2 3 4 5 6)]
[d (vælg 1 2 3 4 5 6)])
(kræv (= (+ a b c d) 20))
(list a b c d)))

> (tyve-med-fire-terninger)
(2 6 6 6)
> (vælg)
(3 5 6 6)
> (vælg)
(3 6 5 6)
...

Jeg var vist for doven til at implementere vælg-alle, da jeg
i sin tid legede med vælg.

--
Jens Axel Søgaard




Lasse Reichstein Nie~ (26-07-2002)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 26-07-02 22:03

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

> Lasse Reichstein Nielsen wrote:

> > Det er præcist det program jeg altid har haft lyst til at
> > skrive,
>
> Har det noget med rollespil at gøre? [Hils Rune]

Det har det. [Skal gøre, så ham igår :)]
Jeg regner også med at det var Torbens grund til at lave
programmet oprindeligt.

Grunden til at jeg selv stoppede (ud over et ikke helt så gennemtænkt
design) var at jeg ikke kunne få programmet effektivt nok til at
give svaret på det jeg skulle bruge. I Roll bliver spørgsmålet:

count =18 largest 6 7#sum largest 3 4#d6

Altså sandsynligheden for et antal 18'ere for en bestem D&D
karakter-rulle-metode. :)

Roll kører på fjerde time allerede, så det var ikke løsningen
på *det* problem, men ellers er det vældig sjovt at lege med :).

> Ja - jeg er også blevet helt fascineret. Mon ikke man skulle
> tage sig sammen og lave en neddroslet version. Jeg leger lidt
> med tanken om at implementere det ved hjælp af
> McCarthys amb (som jeg har kaldt vælg nedenunder).
> Men det svære er selvfølgelig at gøre det effektivt.

Det tror jeg på. Brute force holder kun til meget begrænsede
eksempler.

> For dem der ikke kender amb, så kast et blik
> på nedenstående.

Det lyder som noget der kan laves med continuations (og for vælg-alle:
continuations og store, men alt kan jo laves med dem :) Det bliver det
dog nok ikke effektivt af.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'

Jens Axel Søgaard (28-07-2002)
Kommentar
Fra : Jens Axel Søgaard


Dato : 28-07-02 17:23

Lasse Reichstein Nielsen wrote:
> "Jens Axel Søgaard" <usenet@soegaard.net> writes:
>
>> Lasse Reichstein Nielsen wrote:
>
>>> Det er præcist det program jeg altid har haft lyst til
>>> at skrive,
>>
>> Har det noget med rollespil at gøre? [Hils Rune]
>
> Det har det. [Skal gøre, så ham igår :)]
[Takker]

> Jeg regner også med at det var Torbens grund til at lave
> programmet oprindeligt.

RPG næves i abstract, så mon ikke du har ret.

> Grunden til at jeg selv stoppede (ud over et ikke helt så
> gennemtænkt design) var at jeg ikke kunne få programmet
> effektivt nok til at give svaret på det jeg skulle bruge.
> I Roll bliver spørgsmålet:
>
> count =18 largest 6 7#sum largest 3 4#d6
>
> Altså sandsynligheden for et antal 18'ere for en bestem
> D&D karakter-rulle-metode. :)
>
> Roll kører på fjerde time allerede, så det var ikke
> løsningen på *det* problem, men ellers er det vældig
> sjovt at lege med :).

Hvor lang tid lod du den køre?

Torben skriver, at sum tager kvadratisk tid, så jeg gætter
på cirka

>(expt (expt 6 4) 2)
1679616

muligheder. Det burde lige akkurat være indenfor rækkevidde.

>> Ja - jeg er også blevet helt fascineret. Mon ikke man
>> skulle tage sig sammen og lave en neddroslet version.
>> Jeg leger lidt med tanken om at implementere det ved
>> hjælp af McCarthys amb (som jeg har kaldt vælg
>> nedenunder). Men det svære er selvfølgelig at gøre det
>> effektivt.
>
> Det tror jeg på. Brute force holder kun til meget
> begrænsede eksempler.
>
>> For dem der ikke kender amb, så kast et blik
>> på nedenstående.
>
> Det lyder som noget der kan laves med continuations

Det er det også. Det grundlæggende er

(define fejlfortsættelse 'dummy)

(define (initialiser-fejlfortsættelse)
(set! fejlfortsættelse
(lambda ()
(error "søgetræet er udtømt"))))

(initialiser-fejlfortsættelse)

(define-syntax vælg
(syntax-rules
()
( (vælg) (fejlfortsættelse) )
( (vælg udtryk1 udtryk2 ...) (let/cc return
(let ([tidligere-fejlfortsættelse fejlfortsættelse])
(let/cc fortsæt
(set! fejlfortsættelse
(lambda ()
(set! fejlfortsættelse tidligere-fejlfortsættelse)
(fortsæt 'fejl)))
(return udtryk1))
(vælg udtryk2 ...))) ) ))

En forklaring kan findes her:

http://download.plt-scheme.org/doc/200/html/t-y-scheme/t-y-scheme-Z-H-16.html#%_chap_14

Udfra det kan man så lave ekstra primitiver:

(define (kræv b)
(if (not b)
(vælg)))

(define (et-element-i elementer)
(kræv (not (empty? elementer)))
(vælg (car elementer) (et-element-i (cdr elementer))))

(define (tal-i-interval fra til)
(if (> fra til)
(vælg)
(vælg fra (tal-i-interval (+ fra 1) til))))


> for vælg-alle: continuations og store, men alt kan jo
> laves med dem :)

Næsten

Kender du Danvy og Filinskys "Abstracting Control",1990 ?
Kan hentes fra: http://citeseer.nj.nec.com/danvy90abstracting.html

Der bruger de fortsættelser i flere lag. De har altså ikke bare
shift og reset, men shift-1, shift-2,... og reset-1, reset-2,... .
De har endda et godt eksempel (en gammel kending fra bl.a. SICP),
hvor det viser sig at være nyttigt.

> Det bliver det dog nok ikke effektivt af.

Jeg har også droppet amb-idéen igen. Men jeg sidder nu alligevel og
leger med at lavet noget roll-lignende. Det basale er på plads, men
man skal tænke sig grueligt godt om, for at gøre det lige så elegant
som Torben

--
Jens Axel Søgaard




Torben Ægidius Mogen~ (07-08-2002)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 07-08-02 15:59

Lasse Reichstein Nielsen <lrn@hotpop.com> writes:

> "Jens Axel Søgaard" <usenet@soegaard.net> writes:
>
> > Lasse Reichstein Nielsen wrote:
>
> > > Det er præcist det program jeg altid har haft lyst til at
> > > skrive,
> >
> > Har det noget med rollespil at gøre? [Hils Rune]
>
> Det har det. [Skal gøre, så ham igår :)]
> Jeg regner også med at det var Torbens grund til at lave
> programmet oprindeligt.

Ja. Jeg havde efterhanden skrevet så mange små Haskell programmer til
terningeberegninger, at jeg ville gøre det lettere for mig selv (og
andre) ved at lave et sprog specielt til formålet.

> Grunden til at jeg selv stoppede (ud over et ikke helt så gennemtænkt
> design) var at jeg ikke kunne få programmet effektivt nok til at
> give svaret på det jeg skulle bruge. I Roll bliver spørgsmålet:
>
> count =18 largest 6 7#sum largest 3 4#d6
>
> Altså sandsynligheden for et antal 18'ere for en bestem D&D
> karakter-rulle-metode. :)
>
> Roll kører på fjerde time allerede, så det var ikke løsningen
> på *det* problem, men ellers er det vældig sjovt at lege med :).

Roll benytter udtømmende opremsning med nogle optimeringer, der
hjælper i et antal almindelige tilfælde. Men de hjælper ikke meget i
ovenstående tilfælde, da "largest 6 7# ..." kræver opremsning af alle
muligheder for 7 tal mellem 3 og 18. Og dem er der _mange_ af.

Men vi kan prøve at skrive lidt om på udtrykket for at mindske
beregningerne. Da vi kun er interesseret i om summen giver 18 eller
ej, kan vi flytte denne test længere ind:

count largest 6 7#(=18 sum largest 3 4#d6)

Omskrivningen ser suspekt ud, men den virker på grund af den måde
"largest 6" virker på samlinger med mindre end 6 elementer.

Det giver så på et øjeblik følgende resultat:

Value % = % <
0 : 89.1941318289 0.0
1 : 10.2835587285 89.1941318289
2 : 0.508128784232 99.4776905574
3 : 0.0139486332926 99.9858193416
4 : 0.00022974219540899.9997679749
5 : 2.27039346051E~6 99.9999977171
6 : 1.24942344622E~8 99.9999999875

Average = 0.113425925926 Spread = 0.334047909477

   Torben

Henning Makholm (27-07-2002)
Kommentar
Fra : Henning Makholm


Dato : 27-07-02 14:15

Scripsit "Jens Axel Søgaard" <usenet@soegaard.net>

> Velkommen til DrScheme, version 200.
> Sprog: Temmelig omfattende Scheme speciel.
> > (define (tyve-med-fire-terninger)
> (let ([a (vælg 1 2 3 4 5 6)]
> [b (vælg 1 2 3 4 5 6)]
> [c (vælg 1 2 3 4 5 6)]
> [d (vælg 1 2 3 4 5 6)])
> (kræv (= (+ a b c d) 20))
> (list a b c d)))

Er "vælg" og "kræv" backtracking?

--
Henning Makholm "You are in a little twisting
maze of passages, all different"

Jens Axel Søgaard (28-07-2002)
Kommentar
Fra : Jens Axel Søgaard


Dato : 28-07-02 16:57

Henning Makholm wrote:
> Scripsit "Jens Axel Søgaard" <usenet@soegaard.net>
>
>> Velkommen til DrScheme, version 200.
>> Sprog: Temmelig omfattende Scheme speciel.
>> > (define (tyve-med-fire-terninger)
>> (let ([a (vælg 1 2 3 4 5 6)]
>> [b (vælg 1 2 3 4 5 6)]
>> [c (vælg 1 2 3 4 5 6)]
>> [d (vælg 1 2 3 4 5 6)])
>> (kræv (= (+ a b c d) 20))
>> (list a b c d)))
>
> Er "vælg" og "kræv" backtracking?

Ja. Se eventuelt "Structure and Interpretation of Computer Programs"
for en god forklaring:

http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-28.html#%_sec_4.3

De implementerer amb ved at ændre i en fortolker, men det er ikke nødvendigt,
når man er i besiddelse af call/cc.

--
Jens Axel Søgaard




Torben Ægidius Mogen~ (07-08-2002)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 07-08-02 15:34

Lasse Reichstein Nielsen <lrn@hotpop.com> writes:


> Jeg er ikke helt sikker på at jeg forstår valget af notation for
> repeat (altså at bruge "let _=_ in repeat _" i stedet for
> f.eks. "repeat _=_ in _"), men der er sikkert en god grund. :)

I "repeat x=e1 in e2" lyder det som om det er e1, der gentages.
Notationen "let x=e1 in repeat e2" gør det tydeligt at det er e2, der
gentages. Men det er selvfølgeligt ikke oplagt af notationen, at x
bliver bundet ved hver iteration, så noget i retning af "let x=e1 in
repeat x=e2" ville være mere klart, men kravet om at de to forekomster
af x skal være ens vil nok forvirre brugerne.

   Torben

Henning Makholm (07-08-2002)
Kommentar
Fra : Henning Makholm


Dato : 07-08-02 16:31

Scripsit torbenm@diku.dk (Torben Ægidius Mogensen)

> I "repeat x=e1 in e2" lyder det som om det er e1, der gentages.
> Notationen "let x=e1 in repeat e2" gør det tydeligt at det er e2, der
> gentages. Men det er selvfølgeligt ikke oplagt af notationen, at x
> bliver bundet ved hver iteration, så noget i retning af "let x=e1 in
> repeat x=e2" ville være mere klart, men kravet om at de to forekomster
> af x skal være ens vil nok forvirre brugerne.

Hvad med "repeat x=e2 from e1"?

--
Henning Makholm "... det kan ikke blive fortalt
med hans egne ord, for efter den 11.
september glemte han at føre dagbog i lang tid."

Torben Ægidius Mogen~ (08-08-2002)
Kommentar
Fra : Torben Ægidius Mogen~


Dato : 08-08-02 11:41

Henning Makholm <henning@makholm.net> writes:

> Scripsit torbenm@diku.dk (Torben Ægidius Mogensen)
>
> > I "repeat x=e1 in e2" lyder det som om det er e1, der gentages.
> > Notationen "let x=e1 in repeat e2" gør det tydeligt at det er e2, der
> > gentages. Men det er selvfølgeligt ikke oplagt af notationen, at x
> > bliver bundet ved hver iteration, så noget i retning af "let x=e1 in
> > repeat x=e2" ville være mere klart, men kravet om at de to forekomster
> > af x skal være ens vil nok forvirre brugerne.
>
> Hvad med "repeat x=e2 from e1"?

Det kunne virke. Men jeg vil ikke ændre notationen på nuværende
tidspunkt, kun hvis jeg alligevel laver om på sproget.

   Torben

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

Månedens bedste
Årets bedste
Sidste års bedste