Nekromanti Matematik & Statistik

EchonCique

Hero
Joined
22 May 2000
Messages
1,779
Hejsan forumbesökare.

Jag har ett litet bryderi rörande ett litet system jag tänker använda mig av inom kort. Det är som så att jag vill beräkna förhållandet mellan de olika nivåerna i systemet så att de korrelerar med varandra i en fin matematisk kurva där det är ett snyggt och fint förhållande mellan ökning i kunskaperna och chanserna att lyckas.

Så systemet i grunden är att man har 1 till 6 tärningar (T6). Vid utövande av aktiv eller passiv handling slås det antal tärningar som man har till sitt förfogande (fortfarande 1 till 6). Dessa slås som OBt6 vilket innebär att man teoretiskt kan få väldigt högt resultat. Enbart det högsta resultat av de tärningarna man slog räknas. OBt6 här innebär att om man slår 6, slår man en tärning till och adderar till de dittils slagna tärningarna och repeterar detta tills man inte slår 6.

Om man gör en handling som inte är 'contested' är svårigheten på slaget 4. Detta innebär att man måste slå minst 4 på minst en av tärningarna man har till sitt förfogande.

Om man gör en 'contested' handling, dvs man har en motståndare som utövar en handling mot en själv, lyckas den som får det högsta resultatet på sina tärningar.

Är det förståeligt ännu så länge? Hoppas det, om inte får jag förtydliga.

Hursomhelst, det som jag vill ha beräknat och helst i en fin tabell är förhållandet av X antal tärningar och chansen att lyckas. (X är fortfarande 1 till 6 så klart.)

Helst skulle det bli nedbrutet i hur stor chansen är att det högsta resultatet av sina X tärningar redovisas. Dvs hur stor är chansen om man har låt säga 4 tärningar, att man får n?


Tack på förhand. Den som är hugad är välkommen skicka ett PM och diskutera privat också.


Yyrkoonen
 

peta

Warrior
Joined
25 Feb 2003
Messages
347
Location
Göteborg
Lite trött här men jag tror att jag får det rätt.
Chansen att rulla minst en tärning som visar n eller högre på x tärningar är
1-((n-1)/6)^x

Dvs ett minus chansen att man inte rullar n eller högre på någon av sina x tärningar.

När det gäller Ob så är det lite lurigare så det får jag nog återkomma med när jag är piggare :gremlaugh:

Hoppas det hjälper lite på vägen
 

Feidu

Veteran
Joined
23 Aug 2003
Messages
37
Location
Linköping
Och sannolikheten är ... (rättad.)



Så nu är det bara att ta fram sin Matlab (eller Excel, om man nu har den böjelsen :gremtongue:)

(Jag är medveten om att sista uttrycket ser rörigt ut, men det blir bättre om man skriver ut det för små värden på x....)

/Feidu

Ps.
Jag är för lat för att knacka in härledningen, så den slipper ni.
Ds.
 

Suvarin

Veteran
Joined
18 Feb 2004
Messages
38
Location
Norrköping
Edit: Det här svarar inte på hela din fråga. Feidus svar nedan är mycket komplettare.

Sannolikheten för att slå 6 på 1t6 är 1/6. Sannolikheten för att slå maxresultat med 2t6 är 1/6 * 1/6. Sannolikheten för att slå maxresultat med 3t6 är 1/6 * 1/6 * 1/6...

Sambandet kan utryckas P=p^x där P är sannolikheten att få maxresultatet på alla tärningar, p är sannolikheten att få maxresultatet på en tärning och x är antalet tärningar som ska slås. Sannolikheten få maxresultat med 1t6 är ca 17%, med 2t6 ca 3%, sedan minskar den raskt. Chansen att få sex sexor med 6t6 är otroligt liten.
 

EchonCique

Hero
Joined
22 May 2000
Messages
1,779
.. scilab behöver assistans

i att knappra in och få scilab att printa ut fina variabler, grafer och resultat åt mig. Excel har jag aldrig använt för att göra dylika beräkningar i så det vet jag inte ens hur man får in sådana formler i.

binomial - binomial distribution probabilities

Calling Sequence

pr=binomial(p,n)

Parameters

pr : row vector with n+1 components
p : real number in [0,1]
n : an integer >= 1

Description

pr=binomial(p,n) returns the binomial probability vector, i.e. pr(k+1) is the probability of k success in n independent Bernouilli trials with probability of success p . In other words : pr(k+1) = probability(X=k) , with X a random variable following the B(n,p) distribution, and numerically :


<table width="80%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td bgcolor="svart">/images/hr.gif</td></tr></table>

n=10;p=0.3;plot2d3(0:n,binomial(p,n));
n=100;p=0.3;
mea=n*p;sigma=sqrt(n*p*(1-p));
x=( (0:n)-mea )/sigma;
plot2d(x,sigma*binomial(p,n));
deff('y=Gauss(x)','y=1/sqrt(2*%pi)*exp(-(x.^2)/2)')
plot2d(x,Gauss(x));


Det ser ju ut som något jag kan använda mig av, men hjälp skulle uppskattas. :gremlaugh:
 

Rising

Vila i frid
Joined
15 Aug 2001
Messages
12,763
Location
End of the green line
Har du OB och en valmekanism som gör att man ska välja den högsta tärningen?! Tycker du inte att det är extremt opraktiskt? Liksom, om man är så pass duktig att man får slå fem tärningar, och slår 3, 4, 6, 6 och 6, då skall man börja slå tre nya OB-tärningar, om man då slår 2, 6 och 6, då skall man slå två nya tärningar, och om man då får 1 och 6, då slår man en tärning till, får en femma, och säger "öööh... Hur många slag har slagit, nu igen?" Innan man kommer på att man har fått resultatet 23 så är kvällen över och det är hög tid för alla att gå hem.

Kanske. Eller nja, jag vet inte, men det låter rätt tungrott. Fast det är så klart, om man slår få tärningar under ett spelmöte så är det kanske en poäng att ha en sådan där mekanism.

Mitt förslag för statistiken är att du helt enkelt simulerar det med en programvara som slår typ tusen olika slag.

Det finns visserligen en sorts snorkig attityd bland hobbymatematiker som säger att det är en dum metod, men i själva verket är de som säger så ett gäng riktiga fårskallar allihopa. Man slår så få tärningsslag i ett rollspel (särskilt om man använder din metod! Huga!) att det inte finns någon egentlig skillnad mellan de tu tillvägagångssätten. Alla som försöker argumentera mot det, de är så dumma att de ändå inte har något i rollspelshobbyn att göra. Ja, det är dagens oomkullrunkliga faktum: Snorkiga matematiker kan dra åt helvete.

/Rising
som tycker att OB inte hade så mycket i den här tärningsmekanismen att göra, utan som föredrar metoder där man använder en skala som ser ut så här: 1, 2, 3, 4, 5, 6, två sexor, tre sexor, fyra sexor, och så vidare.
 

EchonCique

Hero
Joined
22 May 2000
Messages
1,779
Nu med grafer!

Valmekanism vet jag väl inte om jag skulle vilja kalla det, mer att den tärning som visar högst antal prickar (eller siffra) är den enda tärningen man skall bry sig om. Om man utför en 'contested' handling så är det av intresse att slå om alla 6'or för att maximera sin handlingsförmåga.

Är det ett normalt slag för att se om man lyckas med en mer eller mindre statisk handling där man inte har någon aktör som motståndare, utan ett fast värde om 4 behöver man ju inte slå om 6'or. Det vore tidsödande och ineffektivt.




Där har du en bild som visar chansen att lyckas vid normala 'färdighetsslag' (även om det inte finns några färdigheter i mitt system men i alla fall) med svårighetsnivå 4 samt chansen att slå minst en 6'a.

Chansen att få en 6'a är inte så stor så det opraktiska elementet som du vill få in är minimalt i mina ögon och kan glatt bortses ifrån. Sedan försvårar du det hela då 23 är ungefär lika bra som 12 i systemet, så allt efter två tärningar är meningslöst att rulla likaså. Man kan inte göra bättre än absolut bäst, oavsett hur länge man rullar en tärning.

Därav är det intressant för mig att få en tabell över sannolikheten att den med färre tärningar får högre resultat på sin högsta tärning än den som har fler tärningar. Är det för skevt får man pula runt, det verkar bra som det är nu.

Därav, mer matematisk statistik, mindre hobbymatematik.
 

Zire

Swashbuckler
Joined
18 May 2000
Messages
3,011
Location
Umeå
Mitt förslag för statistiken är att du helt enkelt simulerar det med en programvara som slår typ tusen olika slag.

Men alla kan nog inte koda sådant program.

Snorkiga matematiker kan dra åt helvete.

Oj.

- Zire, tycker också att det är bättra att simulera, mycket mindre risk att man missar något då, och så går det snabbare
 

Krigeus

Veteran
Joined
23 Oct 2000
Messages
135
Location
Luleå, Sverige
Tankar

Valmekanism vet jag väl inte om jag skulle vilja kalla det, mer att den tärning som visar högst antal prickar (eller siffra) är den enda tärningen man skall bry sig om. Om man utför en 'contested' handling så är det av intresse att slå om alla 6'or för att maximera sin handlingsförmåga.
Alltså, jag förstår inte riktigt syftet med Ob om man enbart väljer den tärning med högst resultat, i detta fall 6. Eftersom man aldrig kan få högre än sex så kommer Ob enbart att köra systemet tungrott och bökigt. Det optimala antalet tärningar blir i det här fallet 6st eftersom normal statiskisk spridning säger att du borde slå 1 till 6 med dessa tärningar och därmed vara garanterad bästa resultat.

Mitt förslag är att du är konsekvent med Ob-förfarandet och tillåter svårighetsgrader över 6. Det ger dessutom större variation beroende på rollpersonernas färdighet.
 

EchonCique

Hero
Joined
22 May 2000
Messages
1,779
Re: Och sannolikheten är ... (rättad.)

Bra bra fint vackert och massa andra ord. Nu återstår bara för mig att peta in din formel i mitt nyinstallerade scilab 3.0 alternativt i MS Excel.

Då mina matematik- & statistikkunskaper är i högsta grad bristande, känner du för att hjälpa till och kanske göra det åt mig? :gremgrin:
 

Ackerfors

Alas, your rapids!
Joined
21 Jan 2001
Messages
7,420
Re: Tankar [ändrad]

"Alltså, jag förstår inte riktigt syftet med Ob om man enbart väljer den tärning med högst resultat, i detta fall 6. Eftersom man aldrig kan få högre än sex så kommer Ob enbart att köra systemet tungrott och bökigt. Det optimala antalet tärningar blir i det här fallet 6st eftersom normal statiskisk spridning säger att du borde slå 1 till 6 med dessa tärningar och därmed vara garanterad bästa resultat."

Det hela handlar ju om hur man ska räkna ut att man lyckas. De flesta spelen säger ju att "om du slår över dittan så har du lyckats, slår du x så är det perfekt och y så är det fummel" och är det tänkt så så kan jag till viss del hålla med om att det är lite bökigt (dock tror jag det är mindre bökigt än vad som påstås i den här tråden :gremwink: ).
Jag misstänker dock, med reservation för mina begränsade tankeläsarkunskaper, att Yyrkoon kommer köra med någon slags effekttabell och då har helt plötsligt OB-delen en poäng eftersom, för att ta ett exempel ur luften, "20+; bättre än såhär går inte att vara, dina resultat är legendariska".

"Mitt förslag är att du är konsekvent med Ob-förfarandet och tillåter svårighetsgrader över 6. Det ger dessutom större variation beroende på rollpersonernas färdighet."

Om det inte är som jag skrev ovan föreslår jag att du, Yyrkoon, struntar i svårighetsgrader och gör en effekttabell. :gremsmile:

<font size="1">Edited: Förlåt, nu gjorde jag precis så som jag avskyr när andra gör och som är anledningen att jag inte postar mina omfattande idéer och frågor här längre. Sorry!</font size>
 

EchonCique

Hero
Joined
22 May 2000
Messages
1,779
Re: Tankar [ändrad]

"Alltså, jag förstår inte riktigt syftet med Ob om man enbart väljer den tärning med högst resultat, i detta fall 6. Eftersom man aldrig kan få högre än sex så kommer Ob enbart att köra systemet tungrott och bökigt. Det optimala antalet tärningar blir i det här fallet 6st eftersom normal statiskisk spridning säger att du borde slå 1 till 6 med dessa tärningar och därmed vara garanterad bästa resultat."

Det hela handlar ju om hur man ska räkna ut att man lyckas. De flesta spelen säger ju att "om du slår över dittan så har du lyckats, slår du x så är det perfekt och y så är det fummel" och är det tänkt så så kan jag till viss del hålla med om att det är lite bökigt (dock tror jag det är mindre bökigt än vad som påstås i den här tråden ).
Jag misstänker dock, med reservation för mina begränsade tankeläsarkunskaper, att Yyrkoon kommer köra med någon slags effekttabell och då har helt plötsligt OB-delen en poäng eftersom, för att ta ett exempel ur luften, "20+; bättre än såhär går inte att vara, dina resultat är legendariska".

"Mitt förslag är att du är konsekvent med Ob-förfarandet och tillåter svårighetsgrader över 6. Det ger dessutom större variation beroende på rollpersonernas färdighet."

Om det inte är som jag skrev ovan föreslår jag att du, Yyrkoon, struntar i svårighetsgrader och gör en effekttabell.

Edited: Förlåt, nu gjorde jag precis så som jag avskyr när andra gör och som är anledningen att jag inte postar mina omfattande idéer och frågor här längre. Sorry!
Nu hänger jag inte med på vad någon av er håller på och mumlar om. Sedan förstår jag inte vad du syftar på heller, förutom att du kanske menar att du replikerar på något utan att ge svar på frågeställningen?

Om ni bara struntar i mekaniken med tärningarna och hjälper mig få statistiskt underlag på det hela så skall ni se att allting blir så mycket bättre. Man skall icke lägga ned tid på sådant som inte är aktuellt och för er är det inte aktuellt någonstans att diskutera tärningsmekaniken för den har jag inte berättat något om i princip.

Sedan kan man visst få högre än sex som resultat, det är bara att slå en 6'a så har man högre än sex. Det blir bara kluddigt, kletigt och dumt om ni går in och petar i mekaniken som sagt. Hjälp mig med statistiken istället så sköter jag det andra.


Yyrkoonen
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,592
Så systemet i grunden är att man har 1 till 6 tärningar (T6). Vid utövande av aktiv eller passiv handling slås det antal tärningar som man har till sitt förfogande (fortfarande 1 till 6). Dessa slås som OBt6 vilket innebär att man teoretiskt kan få väldigt högt resultat. Enbart det högsta resultat av de tärningarna man slog räknas. OBt6 här innebär att om man slår 6, slår man en tärning till och adderar till de dittils slagna tärningarna och repeterar detta tills man inte slår 6.

Om man gör en handling som inte är 'contested' är svårigheten på slaget 4. Detta innebär att man måste slå minst 4 på minst en av tärningarna man har till sitt förfogande.

Om man gör en 'contested' handling, dvs man har en motståndare som utövar en handling mot en själv, lyckas den som får det högsta resultatet på sina tärningar.
Det finns en jättemiss här fördelningsmässigt sett som jag tror de andra har missat. Låt säga att jag slår en enda tärning. Vad kan jag då slå? Jo:

1
2
3
4
5
6+1=7
6+2=8
6+3=9
6+4=10
6+5=11
6+6+1=13
6+6+2=14
6+6+3=15
6+6+4=16
6+6+5=17
6+6+6+1=19
6+6+6+2=20
osv

Ser du missen? Man kan aldrig få ett resultat jämnt delbart med 6, det blir regelbundet återkommande glapp i fördelningen.

Man kan ju lösa det genom att använda en annan mekanism för ob-tärningar, tex att slå en tärning till och lägga på 5 istället för sexan man slog, eller att byta ut den mot två tärningar och kassera sexan man slog. Det lägger dock till en del komplexitet, och ska jag vara ärlig så är systemet redan på gränsen för hur komplext det bör vara.
 

EchonCique

Hero
Joined
22 May 2000
Messages
1,779
Jag är högst medveten om den lilla 'buggen' i min beskrivna mekanik. Jag är också medveten om hur jag skall komma runt den.

Detta är något jag upplevt vääääldigt många gånger då det spelsystem som jag spelat mest bygger på just obT6 med svårighetsgrader OCH antal lyckade tärningar från pölen. Nu var det statistik jag ville ha, men tack för att du är lite uppmärksam på eventuella problem på mekaniken.

Så som sagt. Statistik. :gremooo:
 

Troberg

Sinister eater
Joined
27 Jun 2001
Messages
17,592
Nu var det statistik jag ville ha, men tack för att du är lite uppmärksam på eventuella problem på mekaniken.

Så som sagt. Statistik.
Tja, en kamformad fördelningskurva är också en del av statistiken.
 

Krigeus

Veteran
Joined
23 Oct 2000
Messages
135
Location
Luleå, Sverige
Re: Tankar [ändrad]

I mina ögon är statistiken irrelevant om det grundläggande systemet inte fungerar. Det enda statistiken kommer att visa då är hur fel det blir.

Sen huruvida systemet är aktuellt eller inte är öppet för tolkning. Jag vill veta hur ett system fungerar innan jag börjar jobba det. Så det är ingen mening med att bli stingslig bara för att vissa väljer att gräva lite i ditt system för att analysera effekter därefter.

Sedan kan man visst få högre än sex som resultat, det är bara att slå en 6'a så har man högre än sex.
Det menar du inte? Jag förstår fortfarande inte vad ditt system går ut på. Vänligen förklara det så ska jag se vad jag kan göra beträffande det statistiska.
 

Feidu

Veteran
Joined
23 Aug 2003
Messages
37
Location
Linköping
Re: Och sannolikheten är ... (rättad.)

Här har du en fin fil med sannolikheter.

På varje rad står sannolikheten för att slå över 1,2,3, ..., 30 med samma antal OBt6 som radnumret, beräknat för 1-10 tärningar.

Scilab har jag ingen som helst koll på, men enligt hemsidan verkar det vara likt matlab så du kan testa följande för att generera plottar:

1) ladda in datan. (filen prob.mat bör ligga i den katalog som kommandot "pwd" ger, och inte ha någon ändelse.
<pre><font class="small">code:</font><hr>>loadmatfile ('prob.mat')</pre><hr>
Nu ska du ha en variabel som heter prob (som är en matris enl. ovan)

2) Lek med plot2d3 (tror jag, efter lite letande i manualen)
<pre><font class="small">code:</font><hr>>plot2d3 ([1:10], prob:),4)) //bör ge sannolikheterna att lyckas när svårigheten är 4 för 1-10 tärningar. </pre><hr>
<pre><font class="small">code:</font><hr>>plot2d3([1:30], prob(1,:)) // bör ge sannolikheterna att lyckas för 1 tärning med svårighet 1-30. </pre><hr>
Att jag säger bör är för att jag inte kan kolla själv, men du har nåt att utgå ifrån iaf.

-----
I matlab använde jag följande kod för att göra beräkningarna:
filen p_nt.m:
<pre><font class="small">code:</font><hr>
function [y]=p_nt(n, T)
y=(1+(n.*(floor(T./n)+1)-T))./(n.^(floor(T./n)+1));
</pre><hr>
filen p_ob.m:
<pre><font class="small">code:</font><hr>
function [y] = p_ob (x, p_nt)
y=zeros(length(x), length(p_nt));
for p=[1:length(p_nt)]
for j=x
i = [2:j];
y(j,p) = j*p_nt(p) - sum((-1).^i.*gamma(j+1)./(gamma(i+1).*gamma(j+1-i)).*(p_nt(p).^(i)));
end
end
</pre><hr>
Sen skrev jag i matlab:
<pre><font class="small">code:</font><hr>
P = p_nt(6, [1:30])
prob = p_ob ([1:10], P);
</pre><hr>

För att få scilab att göra samma sak: släng all kod p_nt.m och p_ob.m i samma fil , med "endfunction" instoppad efter varje kodblockslut, och döp den till slump.sci eller nåt liknande.
Kör följande i scilab:
<pre><font class="small">code:</font><hr>>getf("slump.sci") </pre><hr>
Sen bör du kunna använda funktionerna p_nt och p_ob.

----

Det kanske går att läsa i det i Excel också, men det kan jag inte heller leka med just nu.

----

Hoppas att nåt kan vara till hjälp!

/Feidu (Som inte arbetar överdrivet snabbt alla dagar, men håll till godo.)
 

EchonCique

Hero
Joined
22 May 2000
Messages
1,779
Tack! *bugar och bockar sig*

Tusen enorma tack för all din hjälp!

Då har jag nog precis vad jag behöver för att utveckla mekaniken som jag tänkt mig den till det bättre med denna data som grund.

Tack tack tack tack tack tack tack!

:gremlaugh:
 
Top