Söka i lista över längsta förekomst av samma värde (C#)

Permalänk
Avstängd

Söka i lista över längsta förekomst av samma värde (C#)

Jag satt och funderade över den här metoden man kan köra för att i teorin alltid vinna på roulett.
Man satsar en krona på röd, om man förlorar så satsar man två kronor förlorar man igen satsar man fyra kronor, osv.
Vinner man så satsar man en krona igen.

Grunden är att man, för att maximera sin vinst ska börja på ett så högt värde som man har råd att ligga ute med.
Är det sannolikt att man bettar fel färg fem gånger?
Tio gånger?
Har man råd att dubbla sitt startkapital tjugo gånger?

Ja ni förstår.

Hursomhelst så ville jag hitta ett mer praktiskt exempel på hur många gånger man i teorin kan förlora.
Jag tänkte mig att man tar en grundläggande boolslumpgenerator (som inte alls är slumpmässig, men det är ju i praktiken inte kulor på ett roulettebord heller) och genererar en lång lista, och söker efter längsta förekomsten av samma värde i rad.
Sedan redovisas antal iterationer och längsta förekommande följden av true eller false.

Men hur skulle man gå tillväga?
Har börjat på C# lite grundläggande, så förslagsvis något i det skulle underlätta.

Edit: Ja jag förstår att man likväl kunde göra en matematisk grej av det hela istället, men det är ju inte riktigt samma sak.

Permalänk
Medlem

Att generera en lista verkar vara ett onödigt steg, vad du verkar vilja göra är (i pseudo-kod):

n = 1 max_n = 1 v = random() loop N times: r = random() if r == v: n = n + 1 else: max_n = max(max_n, n) n = 1 v = r print("Longest sequence: " + max_n)

D.v.s. räkna upp en räknare så länge som det framslumpade värdet är samma som föregående, annars spara värdet på räknaren om det är det största värdet hittills och börja räkna från 1 igen.

Tillägg: Sannolikheten för att få en sekvens med n lika värden är för övrigt 0.5n, vilket troligtvis är mer intressant i sammanhanget än längsta sekvensen man råkar få i ett visst urval.

Permalänk
Medlem

Ett roulettehjul har ju också ett eller två fack som varken är röda eller svarta, så sannolikheten att du väljer fel kommer alltid vara större än att du väljer rätt. Sannolikheten att välja rätt eller fel är 18/37 och 19/37 med ett grönt fack, och 18/38 och 20/38 med två.

Permalänk
Medlem

Det minsta du kan förlora är 1/37 i snitt per slag. Exempelvis på svart, rött eller högst en siffra. Att fördubbla insatsen hela tiden är en dålig strategi eftersom insatsen snart blir miljontals kronor!

Permalänk
Medlem

Strategin att dubbla insatsen tills man vinner heter för övrigt Martingale.

Permalänk
Avstängd
Skrivet av Irre:

Det minsta du kan förlora är 1/37 i snitt per slag. Exempelvis på svart, rött eller högst en siffra. Att fördubbla insatsen hela tiden är en dålig strategi eftersom insatsen snart blir miljontals kronor!

Inte nödvändigtvis.
Har man en miljon kronor så har man råd att satsa fel nitton gånger, och hur ofta har du singlat klave 20 gånger i rad?

Sedan är det förstås en oerhört slö metod att satsa en krona åt gången om man sitter med en miljon kronor man skulle kunna inverstera i indexfonder eller något istället.
Timlönen blir tämligen låg, för att inte tala om att allt är borta om man stöter på den astronomiskt låga sannolikheten att satsa fel 20 gånger i rad.

Permalänk
Medlem
Skrivet av Ricerunner:

Jag satt och funderade över den här metoden man kan köra för att i teorin alltid vinna på roulett.
Man satsar en krona på röd, om man förlorar så satsar man två kronor förlorar man igen satsar man fyra kronor, osv.
Vinner man så satsar man en krona igen.

Väntevärdet av vinsten kommer att bli en förlust om du inte har oändligt med pengar.
Visst, du kommer oftast att vinna, men när du förlorar så förlorar du desto mer.

Permalänk
Medlem
Skrivet av Ricerunner:

Inte nödvändigtvis.
Har man en miljon kronor så har man råd att satsa fel nitton gånger, och hur ofta har du singlat klave 20 gånger i rad?

Sedan är det förstås en oerhört slö metod att satsa en krona åt gången om man sitter med en miljon kronor man skulle kunna inverstera i indexfonder eller något istället.
Timlönen blir tämligen låg, för att inte tala om att allt är borta om man stöter på den astronomiskt låga sannolikheten att satsa fel 20 gånger i rad.

OK du kan vinna de flesta gånger du spelar. Men de gånger du inte kan fördubbla insatsen äter sannolikt, med råge, den totala vinst du gjort tidigare. Det har många fått erfara.

En annan "vinnande" strategi är att satsa på en enda siffra. Exempelvis noll. Och bestämma att ragla hem när det blir noll. Det tar sannolikt ca 18 slag innan det blir noll. Och då går man sannolikt hem med en vinst ca 18 kr!

Även om man vinner oftast så kommer man ändå förlora i längden med stor sannolikhet!

Permalänk
Medlem
Skrivet av Ricerunner:

Inte nödvändigtvis.
Har man en miljon kronor så har man råd att satsa fel nitton gånger, och hur ofta har du singlat klave 20 gånger i rad?

Ungefär lika ofta som jag haft en miljon kronor att spela för - dvs aldrig.
Sannolikheten att singla klave 20 gånger i rad är strax under en chans på miljonen. Så även om det är osannolikt, så händer det lite då och då.