UMEÅ UNIVERSITET Institutionen för matematik och matematisk statistisk Statistik för tekniska datavetare 5 poäng Per Arnqvist 2007-05-03 Laborationspecifikation Redovisning Ni får gärna jobba parvis och lämna rapport parvis. Specifikation av uppgifter, algoritmer för implementeringar och simuleringar, beskrivning av test- och skattningsmetoder samt erhållna resultat/ delresultat skall redovisas. Skicka inte med programkod. Skriftlig laborationsrapport e-postas till mig som pdf. OBS! Sista inlämningsdatum: 2007-06-01 24.00 Laborationen består av tre delar. Den första delen blir att konstruera en pseudo-slumptalsgenerator, en multiplikativ kongruensgenerator enligt modellen x [ a x b] mod( m) n+ 1 = n + Kom ihåg att välja m tillräckligt stort bara, 2^31 = 2 147 483 648, vilket betyder att om man konstruerat en generator på optimalt sätt kommer man att få drygt 2 miljarder unika slumptal innan den upprepar sig. Testa den på två olika sätt. I powerpointpresentationen jag visade på föreläsningen fick ni tre förslag på test av slumptalsgeneratorer, Pokertest, gap-test samt permutationstest. Prova två av dessa testmetoder. Ni ska dessutom göra flera test, minst 1000 upprepningar, av dessa på er slumptalsgenerator. Om ni t ex valt att göra Pokertest och gap-test ska körschemat vara för t ex Pokertest: For i = 1 to 1000 do Genera 5000 slumptal som ger 1000 5-korts händer Bestäm andelen av varje sort dvs där alla är olika, alla med ett par, alla med två par osv. 2 Bestäm χ - statistikan och spara undan den i en vektor 2 Rita ett histogram, där du måste skala om histogrammet så att arean är 1, och rita in χ (6)- fördelningen i samma bild som histogrammet. Typ, se nedan. Om er generator fungerar bra bör bilden se ut som nedan.
Del två består i att generera slumptal från två fördelningar, normalfördelning samt Weibullfördelning m h a din slumptalsgenerator. För normalfördelningen kan ni använda summationen av 12 likformiga R(0,1) minus 6. Visa att det fungerar för N(m,sigma) variabler med m = 5, 10, 100, och sigma = 0.5, 10, 200. Detta genom att göra ett skalat histogram och rita in frekvensfunktionen för normal i samma bild. Bilda åtminstone 1000 slumptal för varje fördelning. Weibullfördelning är en generalisering av exponentialfördelning med frekvensfunktion c 1 c x ( x c ) a f X ( x) = e x 0 där c kallas formparameter och a för skalparameter. a a Fördelningen är väldigt formbar och används ofta inom hållfasthetsläran.
Här är a=1 och c=0.5, 1 och 3. Weibullfördelade slumptal kan ni generera genom att utnyttja inversmetoden. (Se exempel från föreläsning om att generera exponentialfördelade slumptal). Visa även att din slumptalsgenerator för Weibullfördelade slumptal fungerar genom att konstruera ett skalat histogram och rita in frekvensfunktionen med samma parametervärden som du genererat slumptal med. Prova för c=0.5, 1 och 3.
Del 3 består i att ni ska försöka simulera lite pokerspelande Texas Hold'em - Reglerna och satsandet 1. Sammanfattning Man startar med en lek med 52 kort. Varje spelare får två kort som de andra spelarna inte kan se. Efter detta kommer 5 gemensamma kort upp mitt på bordet under 3 olika omgångar. Den spelare som kan kombinera 5 av dessa kort till den bästa pokerhanden har vunnit spelet. Det spelar ingen roll hur spelaren kombinerar sin hand. Man kan alltså använda alla 5 korten som ligger på bordet eller använda en eller två av de korten som man har på hand. 2. Mörken (Blinds) I Texas Hold'em är det vanligtvis inte så att man behöver lägga in någon ante i spelet. I stället för Ante är det de två spelarna till vänster om given som lägger lilla och stora mörken ("blind bet"). Oftast är den stora mörken samma som vad det kostar att gå med före floppen. Om man spelar vid ett $1/$2 bord är alltså den stora mörken $1. Den lilla mörken är hälften av den stora, alltså $0.50 i detta exempel. Var dock uppmärksam eftersom detta kan skilja sig ifrån casino till casino och göra skillnad på odds osv. För att göra spelet rättvist turas man om att vara givare och därigenom får alla spelare lägga in lika mycket pengar i mörken. Om man sätter sig ner vid ett bord får man antingen vänta tills den stora mörken kommer eller så kan man köpa in sig genom att betala en stor mörk. 3. Första satsningsrundan (pre-flop) Varje deltagare får två kort i given, ett och ett, med början på lilla mörken. Dessa kort kallas också för "pocket cards" och är deltagarens privata. De får alltså inte användas av de andra deltagarna, till skillnad mot de kommande korten. Den spelaren som sitter till vänster om stora mörken talar först och måste syna (lika mycket som stora mörken) eller höja eller lägga sig. 4. Andra satsningsrundan (the flop) När den första satsningsrundan är klar bränner (kastar kortet i "skräphögen") given det översta kortet i leken. Detta görs för att man vill undvika att en spelare kan ha sett det översta kortet. Given lägger därefter tre kort öppet mitt på bordet. Dessa kort kallas för floppen (the flop) och är kort som alla spelare får använda i kombination av sina egna kort för att få den bästa möjliga pokerhanden. Nu vidtar andra satsningsrundan genom att spelaren med lilla mörken (om den lilla mörken lagt sig är det den närmaste spelaren till vänster) börjar tala. Nu, till skillnad mot första satsningsrunda, och i följande satsningsrundor är det tillåtet att checka om ingen spelare ännu har öppnat potten. Så snart det är någon som har öppnat (lagt in en "bet"), måste de andra spelarna syna ("check"), höja ("raise") eller lägga sig ("fold"). 5. Tredje satsningsrundan (the turn) Given bränner på nytt det översta kortet i leken och lägger det fjärde kortet (the turn) fullt öppet på bordet bredvid floppen. Detta kort kan då användas för att plocka ut fem kort av de totalt sex korten som nu är i spel som ger den bästa pokerhanden. Nu vidtar då den tredje satsningsrunda på samma sätt som tidigare. Observera att det är den första aktiva användaren till vänster om given som börjar tala.
6. Fjärde satsningsrundan (the river) Givaren bränner det översta kortet i leken igen och lägger upp det femte kortet (the river) och sista kortet fullt öppet på bordet bredvid de tidigare utlagda korten. Nu kan spelaren se sin slutgiltiga hand genom att kombinera de två egna korten med de fem gemensamma korten på bordet. Nu är det dags för den slutgiltiga satsningsrundan, och som vanligt är det den första aktiva spelaren till vänster om given som börjar tala. Observera att man även visar sina kort om alla kvarvarande personer passar ("checkar"), inga pengar stannar alltså kvar i potten. Efter att spelet är avklarat visar spelarena sina händer och den med den bästa femkortskombinationen av de sju korten vinner potten ("the pot"). Problemet, som ni ser efter att ha läst spelreglerna för Texas Hold em är att om vi vill simulera detta blir det ganska komplicerat. Men, om vi håller oss till sammanfattningen av spelet, Man startar med en lek med 52 kort. Varje spelare får två kort som de andra spelarna inte kan se. Efter detta kommer 5 gemensamma kort upp mitt på bordet under 3 olika omgångar. Den spelare som kan kombinera 5 av dessa kort till den bästa pokerhanden har vunnit spelet. Det spelar ingen roll hur spelaren kombinerar sin hand. Man kan alltså använda alla 5 korten som ligger på bordet eller använda en eller två av de korten som man har på hand. Och fokuserar på det första som står där att varje spelare får två kort och det läggs fem gemensamma kort på bordet. Utan att gå in på hur spelet går till kan vi simulera ett gäng med omgångar av 7 kort och bestämma frekvensen av alla olika, ett par, två par, färg osv utav 5 kort. Här måste ni verkligen simulera ett stort antal gånger för att få den relativa frekvensen att börja närma sig den sanna. Grafiska illustrationer av ovanstående är alltid trevliga. Överkurs är om man gör ett spel för 2-4 deltagare och simulerar fler delar i förloppet med bet osv. Här betyder ju det att man måste i varje hand ha en färdig strategi hur man ska agera utifrån de kort som ligger på bordet och som spelaren har i sin hand. Varje spelare borde väl ha en begränsad summa pengar också. Man kanske kan sätta den till olika värden Finns mycket att roa sig med här. Givetvis måste man skapa sig ett spelbord så att spelet illustreras Punkt 1 och 2 är det som ingår i labben. Punkt 2 kan utläsas som att ni ska ange relativa frekvensen för respektive utfall för n=100, 500, 1000, 10000, osv spelomgångar.