Nekromanti Feuflux sannolikhetsutmaning

Feuflux

omjonasson.se
Joined
8 Jan 2001
Messages
5,026
Location
Linköping
Nu har jag fått en sån där grej på hjärnan igen jag måste skriva ner för att bli av med...

Velade en massa var jag borde lägga tråden, men det blev på makarforumet till slut eftersom jag tyckte att sannolikhetsprat passade bäst där. Tycker moderatorerna annorlunda så är det bara att flytta (som om ni skulle behöva min tillåtelse).

Okej, så här ser premissen ut:
  • Hjälten slåss mot två monster.
  • Alla inblandade tål 5 träffar var innan de är utslagna.
  • Alla (som inte är utslagna) slår samtidigt sina attackslag (1T6).
  • Hjälten träffar det första monstret på 1-3 och det andra monstret på 4-6.
  • Monstrena träffar hjälten på 1-2, monsterkompisen på 3 och missar helt på 4-6.
  • Träffar på någon som är utslagen räknas som en miss.
Vilken sida har störst chans att vinna striden?
1) Hjälten
X) Exakt lika
2) Monstren

(Nu ska jag försöka hitta svaret själv...)
 

anth

Vetefan
Joined
24 Feb 2003
Messages
10,271
Location
Fjollträsk
Alla har en chans att vinna, du vill bara veta vem som har störst chans att vinna. Då är det lättast att räkna så här:

Hjälten H träffar alltid ett monster, men det är 50-50 om han träffar monsterna M1 eller M2

Istället för att göra ett "träd":
50 % > M1:-1, M2:0
50 % > M1:0, M2:-1
Där man räknar chansen för varje utfall...

Låter vi bägge monsterna ta en halv träff i skada:
H> M1:-0,5 M2:-0,5

För M1 blir det:
M1> H:-0,33 M2:-0,17

Och för M2:
M2> H:-0,33 M1:-0,17

Låt oss slå ihop de tre attackerna för första rundan
H: -0,67 M1:-0,67, M2:-0,67

Så i genomsnitt tar alla lika mycket i skada, alltså har alla exakt lika stor chans att vinna.
Och striden kommer i genomsnitt ta 5 / 0,67 = 7,5 rundor.
 

Fjodor Pollett

Swordsman
Joined
10 Dec 2013
Messages
416
Location
Lund
Hjälten får 1/3 + 1/3 träff varje runda så länge båda monstren lever, därefter 1/3 träff per runda
Varje monster får 1/2 + 1/6 träff per runda så länge båda monstren lever, därefter 1/2 per runda
1/3 + 1/3 = 1/2 + 1/6
Det låter som att de går åt samtidigt, i teorin. I praktiken är det förmodligen något helt annat.
 

Staffan

Myrmidon
Joined
7 Jun 2000
Messages
4,228
Location
Lund
Medelvärden går inte att använda i det här fallet eftersom utfallen i viss mån påverkar varandra. Det finns totalt 18 möjliga utfall av varje runda (2 för hjältens attack, 3 vardera för varje monsters attack: 2*3*3 = 18), men eftersom vissa av de utfallen ger samma resultat i slutänden (hjälten träffar monster 1, monster 1 träffar monster 2, monster 2 träffar hjälten = alla tar 1 i skada = hjälten träffar monster 2, monster 1 träffar hjälten, monster 2 träffar monster 1) så blir det totalt 14 möjliga resultat per runda.
HMNP
001 1/8
002 1/24
012 1/72
021 1/72
011 1/12
010 1/8
020 1/24
101 1/6
110 1/6
111 1/18
102 1/36
120 1/36
201 1/18
210 1/18

H är skadan hjälten tar, M är skada monster 1 tar, och N är skadan monster 2 tar.

Längre än så orkar jag inte jobba på saken, framför allt som sannolikheterna börjar ändras efter runda 3 (eftersom det då finns chans att en kombattant är utslagen). Intiutivt tror jag att monstren har en bättre chans eftersom hjältens skada fördelas över monstren, och när det ena monstret är nere kommer skadan som landar på det andra monstret att mer än halveras (hälften av hjältens attacker missar, och det kommer inte längre några fumlade attacker från kompisen).
 

Rhodryn

Hero
Joined
23 Sep 2013
Messages
977
Fick fram samma svar som Anth... fast nu kan jag ju inga formler eller hur man eventuelt skulle använda formler för att räkna ut det etc... har dåligt minne för formler och regler trots allt... så jag har tvingats till att använda min logik och simpel matte för att få fram ett svar. XD

Detta är hur jag fick fram det:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Hjälten (hädanefter kallad H) måste orsaka 10 skada för att vinna.

H gör 1 skada per runda (och det antas att H alltid skiftar mål varje runda, är ju 50/50).

Monstrena (hädanefter kallade Mx2) orsakar 2 skada på sig själva var sjätte runda.

Vilket blir 2 / 6 = 0,333-osv skada på sig själva per runda.

Vilket betyder att Mx2 tar: H + Mx2 = 1,333-osv skada per runda.

10 skada delat på 1,333-osv = 7,5000-osv rundor.

Så, H kommer behöva ~7,5 rundor för att vinna.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Mx2 måste tillsammans orsaka 5 skada på H för att vinna.

Mx2 orsakar 2 skada på H var tredje runda.

Vilket blir 2 / 3 = 0,666-osv skada på H per runda.

5 skada delat på 0,666-osv = 7,5000-osv rundor.

Så, Mx2 kommer behöva ~7,5 rundor för att vinna.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Svar: Vilket ju då betyder att både H och Mx2 borde har lika stor chans att vinna en strid.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Något som jag tycker är intressant också är att:

Om vi antar att på X antal rundor så faller tärningsslagen ut statistiskt sätt (så på t.ex 6 rundor så har Hjälten, Monster A, och Monster B, alla slagit varje resultat på T6'an en gång)...

Och om vi lägger på faktumet att rent matematiskt så behöver både H och Mx2 7,5000-osv rundor på sig att vinna...

Så borde det rent logiskt betyda att där kanske finns åtminstone ett scenario (kanske fler) där ingen vinner. För att i sista rundan så dödar hjälten och det sista monstret varandra.

Antingen det, eller så hamnar delningspunkten mitt i mellan två olika mitten scenarios, varpå utkomsten i så fall skulle alltid vara att antingen hjälten eller monstrena vinner.
 

Björn den gode

Swashbuckler
Joined
5 Jun 2001
Messages
3,430
Location
Göteborg
Roligt problem! To the MathMobile!

Staffan är den som har mest rätt ovan, medelvärde leder oss helt fel då det är en fördel att vara flera i det här fallet. Enklaste sättet att inse det är kanske följande scenario:

Antag att vi har kört 3 rundor, hjälten har slagit 1-1-1 (vad vi väljer för hjälten påverkar inte hur mycket skada som delas ut, alltså har vi inte 'fuskat' så länge det gäller att det inte bara är skadan som delas ut som påverkar). Monstren har på sina 6 attacker träffat hjälten 2 gånger och ett av monstren träffat det andra monstret 1 gång (dvs snittskada har utdelats även av monstren).

Då har vi situtionen Hjälte-HP: 3, Monster1-HP: 1, Monster2-HP: 5

Antag nu att hjälten återigen slår en etta, efter rundan kommer monster 1 vara död, monster 2 kommer att ha i snitt 4,84HP och hjälten kommer att ha i snitt 2.34HP.

Efter denna punkt så är det enkelt eftersom vi bara har två kombatanter kvar så kan vi faktiskt använda oss av medelvärden och vi får då att hjälten i snitt behöver 10 rundor att döda det sista monstret medan monstret bara behöver i snitt 7 rundor.

tl;dr
Så vad är då de rätta siffrorna? Eftersom det bara finns 100 olika möjliga tillstånd så är det faktiskt helt görbart att (med programmering eller excel för den hugade) sätta upp hela sannolikhetsträdet och få de exakta siffrorna.

Det orkade jag förstås inte göra, det är liksom inte värt det när det ändå inte blir snyggt. Så istället gjorde jag en snabb datorsimulering och kom fram till att siffrorna är ungefär 36% hjältesegrar, 58% monstersegrar och 6% oavgjorda.
 

Feuflux

omjonasson.se
Joined
8 Jan 2001
Messages
5,026
Location
Linköping
Kul att ni svarat och förlåt för att jag glömde bort tråden... får se om jag återkommer nästa helg med ett nytt problem. :)

Min känsla (orkade aldrig försöka räkna) var som flera redan sagt att det blir oavgjort; om man inte tar hänsyn till att hjälten får det svårare om/när ena monstret är borta. Sedan trodde jag inte att monstrena skulle vara så favorittyngda som Björn den Godes siffror säger...
 

anth

Vetefan
Joined
24 Feb 2003
Messages
10,271
Location
Fjollträsk
Feuflux;n176206 said:
Kul att ni svarat och förlåt för att jag glömde bort tråden... får se om jag återkommer nästa helg med ett nytt problem. :)

Min känsla (orkade aldrig försöka räkna) var som flera redan sagt att det blir oavgjort; om man inte tar hänsyn till att hjälten får det svårare om/när ena monstret är borta. Sedan trodde jag inte att monstrena skulle vara så favorittyngda som Björn den Godes siffror säger...
Nja, mitt fel var att jag "snabbräknade" att alla har lika stor chans att vinna var och en för sig - men det var inte vad du efterfrågade.
Du frågade hur stor chans hjälten hade.

Enligt min uträkning hade alla lika stor chans:
Hjälten: 33 %
Första monstret: 33 %
Andra monstret: 33 %
Alltså vinner monsterna 67 % av gångerna.

Jämför det med Björn den godes mer exakta uträkning så ser du att jag inte var helt fel ute.
 

RasmusL

Champion
Joined
15 Jan 2012
Messages
9,977
Location
Stockholm
Borde inte det enklaste som uppskattning vara att titta på väntevärdet för antal rundor det tar för exakt ett monster att åka ut och därifrån jämföra 1-mot-1 situationen? Eller blir det för grovt?
 

Staffan

Myrmidon
Joined
7 Jun 2000
Messages
4,228
Location
Lund
Nej, väntevärdet är näst intill värdelöst (hah!) i situationen, eftersom det rör sig om en serie diskreta händelser. Det är lite grann som att säga att rövaren kommer varje slag i Settlers of Catan, eftersom väntevärdet på 2T6 är 7 och rövaren kommer på en 7:a.

Med tanke på att du har 14 möjliga resultat varje runda (i alla fall tills ett av monstren är utslaget) så tror jag det enklaste helt enkelt är att Monte Carlo-simulera det hela - alltså att skriva ett program som kör processen ett par tusen gånger och se vad sannolikheterna hamnar på.
 

Feuflux

omjonasson.se
Joined
8 Jan 2001
Messages
5,026
Location
Linköping
Mannen i skogen;n176443 said:
Feuflux: Uppkom tråden av ren nyfikenhet, eller är det en faktisk spelidé som du mekar med?
Det uppkom väl mest som en liten utmaning för forumets kollektiva tankekraft. :)
Så inte så mycket nyfikenhet och jag har ingen spelidé jag jobbar på.
 

Björn den gode

Swashbuckler
Joined
5 Jun 2001
Messages
3,430
Location
Göteborg
Staffan;n176617 said:
Nej, väntevärdet är näst intill värdelöst (hah!) i situationen, eftersom det rör sig om en serie diskreta händelser. Det är lite grann som att säga att rövaren kommer varje slag i Settlers of Catan, eftersom väntevärdet på 2T6 är 7 och rövaren kommer på en 7:a.

Med tanke på att du har 14 möjliga resultat varje runda (i alla fall tills ett av monstren är utslaget) så tror jag det enklaste helt enkelt är att Monte Carlo-simulera det hela - alltså att skriva ett program som kör processen ett par tusen gånger och se vad sannolikheterna hamnar på.
Ja, det är helt klart enklast... fast, jag tror inte det är så svårt att skriva ett program som räknar ut det exakt, och det är i princip görbart med papper och penna också för den delen. Tricket är ju att det bara finns hm.. 100 (5 * (5 + 6*5/2)) möjliga tillstånd för spelet att vara i där det inte är slut: Hjälten har 1-5HP, Monstren har antingen lika (inte båda noll) 5 tillstånd, eller olika 6 möjligheter för första och 5 för andra men delat på två eftersom Monster 1 = 2HP, Monster 2 = 3HP är identiskt spelmässigt med M_1=3HP, M_2=2HP.

Vi har dessutom från varje nod i trädet en fix sannolikhet att ta oss till andra delar av trädet (den graf med 14 utfall som du skrev upp) så börjar vi i 555 så har vi 100 noder att gå igenom och för var och en göra 14 beräkningar (dvs vilken nod hamnar jag på), det är ju ingenting för en dator.
 

RasmusL

Champion
Joined
15 Jan 2012
Messages
9,977
Location
Stockholm
Staffan;n176617 said:
Nej, väntevärdet är näst intill värdelöst (hah!) i situationen, eftersom det rör sig om en serie diskreta händelser. Det är lite grann som att säga att rövaren kommer varje slag i Settlers of Catan, eftersom väntevärdet på 2T6 är 7 och rövaren kommer på en 7:a.

Med tanke på att du har 14 möjliga resultat varje runda (i alla fall tills ett av monstren är utslaget) så tror jag det enklaste helt enkelt är att Monte Carlo-simulera det hela - alltså att skriva ett program som kör processen ett par tusen gånger och se vad sannolikheterna hamnar på.
Njaa, nu menade jag väntevärdet av kombinationen av händelser som leder fram till att minst ett monster dör. Även om 1T6 har väntevärde 3,5 så är jag medveten om att jag inte kommer att slå just 3,5 särskilt ofta ;) Jag har säkert ha fel ändå, men såhär menar jag:

Jag tänker väl som så att när det bara är 1v1 så är det rätt trivialt att räkna fram vem som vinner (i genomsnitt). Om en plockar fram det genomsnittliga antal rundor det tar för exakt ett monster att dö och sedan tittar på vilken genomsnittlig skada de båda kvarvarande aktörerna har tagit (med hänsyn till de träffar som gått åt för att sänka det första monstret), får vi inte då en 1v1-situation vars utfall speglar sannolikheten för helheten?
 

Staffan

Myrmidon
Joined
7 Jun 2000
Messages
4,228
Location
Lund
Björn den gode;n176657 said:
Ja, det är helt klart enklast... fast, jag tror inte det är så svårt att skriva ett program som räknar ut det exakt, och det är i princip görbart med papper och penna också för den delen. Tricket är ju att det bara finns hm.. 100 (5 * (5 + 6*5/2)) möjliga tillstånd för spelet att vara i där det inte är slut: Hjälten har 1-5HP, Monstren har antingen lika (inte båda noll) 5 tillstånd, eller olika 6 möjligheter för första och 5 för andra men delat på två eftersom Monster 1 = 2HP, Monster 2 = 3HP är identiskt spelmässigt med M_1=3HP, M_2=2HP.

Vi har dessutom från varje nod i trädet en fix sannolikhet att ta oss till andra delar av trädet (den graf med 14 utfall som du skrev upp) så börjar vi i 555 så har vi 100 noder att gå igenom och för var och en göra 14 beräkningar (dvs vilken nod hamnar jag på), det är ju ingenting för en dator.
Grejen är att trädet skärs av vid ett antal tillfällen, vilket gör saken mer komplicerad. Det går säkert att göra, det är bara mer jobb än jag är villig att lägga på det.

RasmusL;n176666 said:
Njaa, nu menade jag väntevärdet av kombinationen av händelser som leder fram till att minst ett monster dör. Även om 1T6 har väntevärde 3,5 så är jag medveten om att jag inte kommer att slå just 3,5 särskilt ofta ;) Jag har säkert ha fel ändå, men såhär menar jag:

Jag tänker väl som så att när det bara är 1v1 så är det rätt trivialt att räkna fram vem som vinner (i genomsnitt). Om en plockar fram det genomsnittliga antal rundor det tar för exakt ett monster att dö och sedan tittar på vilken genomsnittlig skada de båda kvarvarande aktörerna har tagit (med hänsyn till de träffar som gått åt för att sänka det första monstret), får vi inte då en 1v1-situation vars utfall speglar sannolikheten för helheten?
Jag är inte så säker på att väntevärdet är relevant i sammanhanget, när det rör sig om så pass få slag som det faktiskt gör. För att ta en analogi:

Låt oss säga att du är en fighter i D&D. Du har 2 hp kvar och har fastnat i närstrid med en trollkarl, som du vet har magic missile (automatisk träff för 1d4+1 hp). Du vet att trollkarlen har 13 hp kvar, och du har möjlighet att dänga till honom med antingen en greataxe för 1d12+3 (snittskada 9,5), eller ett greatsword för 2d6+3 (snittskada 10) i skada innan det blir hans tur. Vilket väljer du?

Även om svärdet gör mer i snittskada är det i det här (förvisso väldigt konstlade) fallet fel val. För att få ner trollkarlen måste du slå 10+ på 2d6, och den chansen är 1/6. Med yxan ska du slå 10+ på 1d12, och den chansen är 1/4.
 
Top