onsdag 27 juni 2007

Konsten att vinna i memory

En av fördelarna med att ha perfekt minne skulle vara att man skulle klara sig bra i spelet memory. Om två sådana personer möter varann, avgörs då mötet bara av vem som har mest tur? Nej, det finns taktik också, och en pressrelease från KTH för ett tag sedan nämner en uppsats av Erik Alfthan som behandlar denna taktik.

För att förhindra dödlägen för Alfthan in en ny regel som säger att man inte får vända upp två redan kända brickor i sitt drag. Vid varje drag kommer alltså minst en ny bricka att vändas upp, och därmed kan man vara säker på att spelet tar slut så småningom.

När det blir ens drag inhöstar man först förstås eventuella kända par, och sedan vänder man upp en okänd bricka. Om man känner till dess maka är det självklart hur man spelar, men annars uppstår frågan om man ska chansa genom att vända upp en till okänd bricka, eller fega genom att vända upp en redan känd bricka för att inte ge motståndaren för mycket information. Den rätta taktiken visar sig se ut som i nedanstående tabell som är anpassad från en förlaga från Alfthan, där C betyder chansa och F fega.

 01234567891011121314151617
2C
3CF
4CFC
5CFCF
6CFCFF
7CFCFFC
8CFCFFCF
9CFCFFFFF
10CFCFCFCFC
11CFCFCFCFCF
12CFCFCFFFCFC
13CFCFCFFFCFCF
14CFCFCFFFCFCFC
15CFCFCFFFCFCFCF
16CFCFCFCFCFCFCFC
17CFCFCFCFCFCFCFCF
18CFCFCFCFCFCFCFCFC
19CFCFCFCFCFCFCFCFCF
01234567891011121314151617


Raderna anger hur många par som ligger på bordet och kolumnerna hur många par som just då är helt osedda för spelarna.

Exempel: Det finns arton brickor på bordet. Jag känner bara till en av brickorna: en elefant. Jag börjar mitt drag med att vända upp en bricka som visar sig föreställa en flicka med tändstickor. Nu finns det totalt nio par och sju av dessa är helt okända. I rad 9 kolumn 7 står F så det är dags att fega och vända upp elefanten och lämna över turen till motståndaren som nu liksom jag känner till vilka två av de arton brickorna är.

Efter en del avvikelser högst upp i tabellen så verkar den sedan från 16 par och uppåt gå in i ett varannan-mönster så att det räcker att se om antalet sedda brickor är udda (chansa) eller jämnt (fega). Något bevis för att det verkligen är så är inte känt, men Alfthan kontrollerade alla möjligheter upp till 200 par och jag har dubbelkollat upp till 1000.

Detta utgår dock från att varje invunnet par är lika mycket värt för spelarna. Jag blev nyfiken på vad som sker om spelarna istället bara försöker vinna, dvs. få fler par än motståndaren, men struntar i hur mycket de vinner med. Jag räknade ut denna strategi, som beror på poängställningen, och den återges i följande tabell:

01234567891011121314151617
2C
3CF
4CFC(3-)
5CFCF
6CFCFF(5-)
7CFCFF(6-)C(5-)
8CFCFF(7-)C(5-)F(6-)
9CFCFF(8-)C(3-)F(6-)C(5-)
10CFCFC(4-7)FF(6-)FF(4-)
11CFCFC(8)FF(5-)FF(3-)C(1-)
12CFCFCFF(6-)FF(4-)FF(2-)
13CFCFCFF(7-)FF(4-)FF(2-)F
14CFCFCFF(8-)FF(4-)FF(2-)FC
15CFCFCFF(8-)FF(4-)FCFCF
16CFCFCFF(8-)FF(3-)FCFCFC
17CFCFCFCFCFCFCFCF
18CFCFCFCFCFCFCFCFC
19CFCFCFCFCFCFCFCFCF
01234567891011121314151617


Bokstaven visar vilket val man ska göra vid lika poängställning och intervallet inom parentes visar vid vilka skillnader i poäng som man ska göra nåt annat. Så om det finns tjugo brickor kvar på bordet och man just har vänt upp en bricka till det fjärde kända paret så läser man av rad 10, kolumn 6 där det står "F(6-)" så man ska fega om inte skillnaden i poäng mellan spelarna är 6 eller mer. Det rätta draget blir kanske lite oväntat detsamma oavsett om man leder med ett visst antal poäng eller ligger under med lika många poäng. För 17 och fler par verkar det igen som att samma enkla strategi alltid är bäst, oavsett poängställning.

Perfekt att skriva ut och ha till hands nästa gång du möter en annan perfekt memory-spelare i en duell!

4 kommentarer:

- sa...

Men om man har perfekt minne, behöver man verkligen skriva ut tabellen och ta med sig? Kan man inte bara memorera den? Det är ju dessutom praktiskt om varannan-mönstret fortsätter, för då behöver man ju bara minnas en regel.

Per sa...

Man kanske bara har perfekt minne för djur, eller vad det nu är för bilder på korten!

Anonym sa...

En regel som säger att man inte får vända upp två redan kända brickor i sitt drag kan väl rimligtvis inte fungera i praktiken? Enda sättet att vara säker på det är att markera de kort som man tittat på på något sätt och det skulle ändra spelet en hel del, i alla fall om man spelar på min låga nivå.

Per sa...

Men eftersom spelarna har perfekt minne så ändras inte spelat av en sådan markering. Den minsta situationen där regeln behövs är när det finns tio brickor ute vara fyra är kända. Då är alltså bara ett av fem par helt okänt.
När bara ett par är okänt så är matchen snart slut. Om jag råkar vända upp en bricka från det sista paret så kommer antingen jag eller (troligen) min motståndare att genast kunna ta in alla resterande par.

Om jag börjar med att vända upp en av de sex okända brickorna så får jag i snitt två och en tredjedel av de fem paren, dvs. mindre än hälften, så därför föredrar jag att motståndaren börjar i den situationen.

Följande förteckning visar vilka situationer man hellre skulle vilja bolla över istället för att göra ett drag. Här utgår jag som i första tabellen från att varje par är lika mycket värt och jag listar först antalet par och sedan antalet helt okända par.

(2,2) (3,3) (4,4) (5,5) (7,7)
samt serien (10,10) (12,12) (14,14) osv., men eftersom det inte finns några okända brickor i dessa startsituationer är det inte möjligt att vända upp två kända brickor.

(3,2) (5,4) - men eftersom det bara finns en känd bricka är det inte möjligt att bolla över genom att vända upp två kända brickor ändå

(6,4) (7,4)

(5,1) (6,1) (7,1) (8,1) ...
(För (4,1) är det vilket som.)

(12,3) (13,3) (14,3) (15,3) ...

(20,5) (21,5) (22,5) (23,5) ...

osv. så att det med högre antal par blir allt högre udda antal helt okända par som ger en dålig position. De första situationerna för olika andratal är
(27,7) (34,9) (38,11) (42,13) (48,15) (54,17) (61,19) (66,21) (72,23) (78,25) (84,27) (90,29) (96,31)

Med t.ex. (61,19) omedelbart ovan menas alltså (61,19) (62,19) (63,19) (64,19) osv.

Ovanstående täcker alla upp till och med 100 par.

Fast detta har man inte så stor nytta av, för möter man en spelare som inte har perfekt minne så ska man förstås utnyttja denna brist och inte spela på samma sätt i alla fall!