• No results found

NIM MED EN MODULÄR MULLERTWIST

N/A
N/A
Protected

Academic year: 2022

Share "NIM MED EN MODULÄR MULLERTWIST"

Copied!
14
0
0

Loading.... (view fulltext now)

Full text

(1)

NIM MED EN MODULÄR MULLERTWIST

Institutionen för matematik, Kungliga Tekniska Högskolan

Stockholm, 2014

Av

Henrik Ekholmer

ekholmer@kth.se

Handledare

Jonas Sjöstrand Examinator

Gunnar Tibert

(2)

Abstract

This paper explains the basis for impartial games and the classic game Nim. Nim is complicated by a modular Muller twist and the solution for this game is described by a simple theorem. The modular Muller twist means that at the end of each move the player selects a k and the number of sticks the next player leaves in the pile, where the draw is made, must be congruent with k modulo m. The number m is

xed throughout the game.

Sammanfattning

I denna rapport förklaras grunden för opartiska spel samt det klas- siska spelet Nim och hur man vinner i det. Nim kompliceras också med en modulär Mullertwist och lösningen för detta spel beskrivs med en enkel sats. Den modulära Mullertwisten innebär att i slutet av varje drag väljer spelaren ett k och antalet stickor nästa spelare lämnar kvar i den hög hon drar från måste vara kongruent med k modulo m. Talet mär xt under hela spelet.

(3)

Innehåll

1 Introduktion 1

1.1 Opartiska spel . . . . 1

1.1.1 Subtraktionsspel . . . . 1

1.2 N - och P-positioner . . . . 1

1.3 Nimsumma . . . . 2

1.4 Spelet Nim . . . . 3

1.5 Mullertwist . . . . 4

2 Nim med en modulär Mullertwist 5 2.1 Denition av spelet . . . . 5

2.1.1 Optimalt spelande . . . . 5

2.2 Måste ta k modulo m stickor . . . . 7

2.2.1 Optimalt spelande . . . . 7

2.3 Får inte ta K modulo m stickor . . . . 9

2.3.1 Optimalt spelande . . . . 9

3 Öppna problem 10 3.1 Får inte lämna kvar K modulo m stickor . . . 10

(4)

1 Introduktion

I denna rapport börjar vi med att beskriva grunden för opartiska spel och olika denitioner som är viktiga i den vinnande strategin för spelen beskriv- na i avsnitt 2. För den som är intresserad av att lära sig metoder för att lösa opartiska spel rekommenderas häftet Game Theory [1].

1.1 Opartiska spel

Ett opartiskt spel har alltid två spelare. De båda spelarna har samma förut- sättningar. Att de har samma förutsättningar betyder att båda spelarna kan röra samma spelpjäser som nns i spelet. Till exempel är inte luarschack ett opartiskt spel eftersom en spelare bara får använda X och den andra spelaren får bara använda O.

För att ett spel ska vara opartiskt måste det uppfylla följande villkor:

(1) Det ska vara två spelare.

(2) Spelarna yttar varannan gång.

(3) Från varje position ska det nnas samma möjliga drag oavsett vilken spelare som spelar.

(4) En spelare har förlorat om det inte nns något drag att göra.

1.1.1 Subtraktionsspel

En typ av opartiska spel är subtraktionsspel. De går ut på att två spelare turas om att ta bort stickor. Ett exempel är en hög med 20 stycken stickor.

Varje spelare får antingen ta bort 1, 2 eller 3 stickor från högen. Den som tar den sista stickan vinner, eftersom nästa spelare inte kan göra något drag och därmed förlorar.

Notera att ett subtraktionsspel även kan vara ett partiskt spel. Om till exempel Spelare A bara får ta 1 eller 2 stickor och Spelare B bara får ta 2 eller 3 stickor. Det går emot punkt (3) för opartiska spel, "från varje position ska det nnas samma möjliga drag oavsett vilken spelare som spelar".

1.2 N - och P-positioner

Varje opartiskt spel tillhör en av två utfallsklasser N och P. P står för previous player wins, alltså förgående spelare vinner. N står för next player wins, alltså nästa spelare vinner.

Denition 1. Från varje N nns det minst ett drag som leder till ett P.

Från varje P leder alla drag till ett N .

(5)

Exempel. I subtraktionsspelet beskrivet ovan (Ÿ1.1.1) är den första P- positionen när det inte nns några stickor kvar. Föregående spelare, previous player, tog den sista stickan och vann därmed. När det nns 1, 2 eller 3 stic- kor kvar är det ett N , eftersom nästa spelare, next player, kan ta resterande stickor och därmed vinna. Det gör att 4 stickor kvar är ett P, eftersom från den positionen kan man bara komma till 1, 2 eller 3 stickor kvar. I tabell 1 nedan visas de första 12 positionerna för spelet.

Stickor 0 1 2 3 4 5 6 7 8 9 10 11 12

Utfallsklass P N N N P N N N P N N N P

Tabell 1. Observera att mönstret P N N N upprepar sig.

Mönstret i tabell 1 ovan visar att P upprepar sig på 0 modulo 4. För att vinna i det spelet lämnar man helt enkelt efter sig 0 modulo 4 stickor kvar.

1.3 Nimsumma

Nimsumma är en operation som är mycket användbar när det kommer till att lösa olika opartiska spel. Namnet nimsumma kommer från att den elegant löser det klassiska spelet Nim. Mer om det spelet nns att läsa under Ÿ1.4.

Denition 2. En nimsumma är en operator mellan två naturliga tal.

Nimsumman mellan a och b som ger c betecknas, a ⊕ b = c. Operationen utförs genom att dela upp de två talen i binära bitar a = an2n+ . . . + a020 och b = bn2n+ . . . + b020. ck= (ak+ bk) modulo 2och c = cn2n+ . . . + c020.

Exempel. . Vi vill räkna ut 6 ⊕ 5. Vi börjar med att skriva ut talen på binär form 6 =2 110och 5 =2 101.

6 =2 1 1 0 5 =2 1 0 1 3 =2 0 1 1

Den första kolumnen ger (1+1) modulo 2 = 0, den andra (1+0) modulo 2 = 1 och den tredje (0 + 1) modulo 2 = 1 =⇒ 6 ⊕ 5 =2 011 =103.

Sats 1 Låt b1, . . . , bnvara ickenegativa heltal. Om deras nimsumma är noll blir den positiv om man minskar ett av talen, vilket som helst. Om deras nimsumma är positiv så kan man å andra sidan alltid få nimsumman till noll genom att minska något av talen.

Beviset för Sats 1 redogörs i häftet Game Theory [1].

2

(6)

1.4 Spelet Nim

Spelet Nim har utöver reglerna för opartiska spel även följande regler:

(1) Det nns n högar med stickor.

(2) Ett giltigt drag är att ta minst 1 och max alla stickor från en hög.

I en position där a1, . . . , anär antalet stickor i högarna betecknas (a1, . . . , an). Exempel. En position med 3 högar som har 7, 4 respektive 1 stickor i varje hög betecknas (7, 4, 1). I gur 1 spelar Spelare A mot Spelare B från den positionen.

Spelare A : (7, 4, 1) −→ (5, 4, 1) Spelare B : (5, 4, 1) −→ (2, 4, 1) Spelare A : (2, 4, 1) −→ (2, 3, 1) Spelare B : (2, 3, 1) −→ (2, 1, 1) Spelare A : (2, 1, 1) −→ (0, 1, 1) Spelare B : (0, 1, 1) −→ (0, 0, 1) Spelare A : (0, 0, 1) −→ (0, 0, 0) Spelare B : (0, 0, 0) −→

Figur 1. Spelare A har vunnit eftersom Spelare B inte kan göra något drag.

Ett P i Nim har alltid nimsumman 0. En optimal strategi är att hela tiden lämna efter sig en position med nimsumman 0. I gur 2 ser vi att det är precis vad Spelare A gör.

Spelare A : (7, 4, 1) =⇒ 7 ⊕ 4 ⊕ 1 = 2 Spelare B : (5, 4, 1) =⇒ 5 ⊕ 4 ⊕ 1 = 0 Spelare A : (2, 4, 1) =⇒ 2 ⊕ 4 ⊕ 1 = 7 Spelare B : (2, 3, 1) =⇒ 2 ⊕ 3 ⊕ 1 = 0 Spelare A : (2, 1, 1) =⇒ 2 ⊕ 1 ⊕ 1 = 2 Spelare B : (0, 1, 1) =⇒ 0 ⊕ 1 ⊕ 1 = 0 Spelare A : (0, 0, 1) =⇒ 0 ⊕ 0 ⊕ 1 = 1 Spelare B : (0, 0, 0) =⇒ 0 ⊕ 0 ⊕ 0 = 0

Figur 2. Observera hur Spelare A spelar optimalt genom att hela tiden sätta Spelare B i en position med nimsumman 0.

Sats 2. För Nim gäller att

(a1, . . . , an) ∈ P ⇐⇒ a1⊕ · · · ⊕ an= 0.

(7)

Bevis. Induktion används över a1+ · · · + an. I basfallet a1+ · · · + an= 0

nns inga drag att göra och spelet är slut.

Anta att Sats 2 gäller om a1+ · · · + an< Aför något specikt tal A. Vi ska visa att den gäller om a1+ · · · + an= A.

(⇐=)Anta att högra villkoret i sats 2 är sant, vilket ger att a1⊕· · ·⊕an= 0. Varje drag kommer att göra nimsumman positiv, enligt Sats 1. Induktion ger att varje resulterande position är ett N , vilket per denition (Ÿ1.2) ger att den ursprungliga positionen är ett P.

(=⇒) Anta istället att högra villkoret i sats 2 är falskt, vilket ger att a1 ⊕ · · · ⊕ an 6= 0. Då nns det ett drag som gör att nimsumman för den resulterande positionen är noll, enligt Sats 1. Induktion ger att den resulte- rande positionen är ett P, vilket ger att den ursprungliga positionen är ett N.

2 1.5 Mullertwist

Att införa en Mullertwist på ett opartiskt spel innebär att förutom att en spelare gör ett drag väljer den också en regel för den andra spelaren, till exempel att nästa spelare inte får ta er än 3 stickor. Det gör inte att spelet blir partiskt eftersom regeln kommer vara låst på positionen och inte på spelaren som i partiska spel.

4

(8)

2 Nim med en modulär Mullertwist

2.1 Denition av spelet

Spelet Nim utökas med en Mullertwist enligt punkterna nedan.

(1) Innan start väljs ett m.

(2) Ett drag består av att först plocka stickor från en hög och därefter välja en ny restriktion k.

(3) Restriktionen k innebär att antalet stickor nästa spelare lämnar kvar i den hög hon drar från måste vara kongruent med k modulo m.

(4) Spelaren förlorar om det inte nns något giltigt drag att göra.

(5) En position med restriktionen k betecknas (a1, . . . , an)k.

Exempel. Ett spel skapas genom att m väljs till 3. Det ger tre alternativ till regel, 0 modulo 3, 1 modulo 3 och 2 modulo 3. Dragen mellan Spelare A och Spelare B visas i gur 3 nedan.

Spelare A : (12, 9, 5)2 −→ (8, 9, 5)2 Spelare B : (8, 9, 5)2 −→ (8, 5, 5)1 Spelare A : (8, 5, 5)1 −→ (1, 5, 5)2 Spelare B : (1, 5, 5)2 −→ (1, 2, 5)0 Spelare A : (1, 2, 5)0 −→ (1, 2, 0)2 Spelare B : (1, 2, 0)2 −→

Figur 3. Exempel på spel i modulo 3. Spelare A vinner eftersom Spelare B till slut inte kan göra något drag.

2.1.1 Optimalt spelande

För varje position (a1, . . . , an)k kan vi med hjälp av heltalsdivision och rest skriva om varje ai = m · bi+ εi, där εi∈ [0, m − 1]. Vi inför notationen

(a1, . . . , an)k=b1, . . . , bn

ε1, . . . , εn



k

.

Varje drag från en godtycklig position (a1, . . . , an)k kommer att minska en valfri hög ai så att den nya högen ai− r är lika med k modulo m. Ett drag på den omskrivna formen kommer att ändra εi till k och minska bi till bi − q, där q kan vara noll om och endast om εi > k. Varje drag från en position med restriktionen k skrivs som

(a1, . . . , ai− r, . . . , an)j =b1, . . . , bi− q, . . . , bn ε1, . . . , k, . . . , εn



j

där j är den nya restriktionen.

(9)

Exempel. Låt oss spela spelet modulo 3 och från positionen (15, 13, 8, 2)1. Vi skriver nu om varje ai på formen m · bi+ εi. Det ger oss att

15 = 3 · 5 + 0

13 = 3 · 4 + 1

8 = 3 · 2 + 2

2 = 3 · 0 + 2

vilket skrivs ut som5, 4, 2, 0 0, 1, 2, 2



1

.

Det är viktigt att förstå hur drag kan göras på den omskriva formen.

Därför kommer vi att göra ett drag där restriktionen är mindre än största εi

och ett annat drag där restriktionen är större eller lika med största εi. Vi börjar med positionen

(15, 13, 8, 2)1 =5, 4, 2, 0 0, 1, 2, 2



1

där restriktionen, 1, är mindre än max{0, 1, 2, 2} = 2. Eftersom vi har två högar, hög 3 och hög 4, där εi är större än restriktionen kan vi välja att ta bort en sticka från någon av de högarna och därmed inte minska något bi. Vi väljer hög 3 och tar bort en sticka, sedan väljer vi restriktionen till 2. Det ger oss positionen

(15, 13, 7, 2)2 =5, 4, 2, 0 0, 1, 1, 2



2

där restriktionen, 2, är lika med max{0, 1, 1, 2} = 2. Från den här positionen är nästa spelare tvingad till att minska något bi. Ett giltigt drag är till exempel att ta en sticka från hög 1 och välja restriktionen till 2, vilket ger oss positionen:

(14, 13, 7, 2)2 =4, 4, 2, 0 2, 1, 1, 2



2

där restriktionen igen är lika med max{0, 1, 1, 2} = 2.

Observera att det alltid går att tvinga nästa spelare att minska något bi genom att välja restriktionen m − 1, eftersom varje εi ≤ m − 1. Detta utnyttjas i den vinnande strategin.

Sats 3.

(a1, . . . , an)k∈ P ⇐⇒ b1⊕ · · · ⊕ bn= 0 och k ≥ max{ε1, . . . , εn} där ai = m · bi+ εi och εi ∈ [0, m − 1].

6

(10)

Bevis. Vi använder induktion över a1+· · ·+an. I basfallet a1+· · ·+an= 0

nns inga drag att göra och spelet är slut.

Anta att Sats 3 gäller om a1+ · · · + an< A, för något specikt tal A. Vi ska visa att den då även gäller om a1+ · · · + an= A.

(⇐=)Anta för en godtycklig position att a1+ · · · + an= A. Anta att det högra villkoret är sant för den positionen. Det gör att varje drag måste mins- ka något bi, vilket enligt Sats 1 (Ÿ1.3) resulterar i att nimsumman för varje resulterande position är skild från noll. Induktion ger att varje resulterande position är ett N . Den ursprungliga positionen är då per denition(Ÿ1.2) ett P.

(=⇒)Anta istället att högra villkoret är falskt för en godtycklig position där a1+ · · · + an= A. Det ger två fall.

Om b1⊕ · · · ⊕ bn6= 0nns det, på samma sätt som i Nim (Ÿ1.4), ett drag som minskar ett bi sådant att nimsumman för den resulterande positionen är noll för att sedan välja restriktionen till k ≥ max{ε1, . . . , εn}.

Om b1 ⊕ · · · ⊕ bn = 0 och k < max{ε1, . . . , εn} nns det minst ett drag som bara minskar ett εi och sedan väljer en ny restriktion till k ≥ max{ε1, . . . , εn}.

Induktion ger i båda fallen att den resulterande positionen är ett P. Per denition är den ursprungliga positionen ett N .

2 2.2 Måste ta k modulo m stickor

I spelet beskrivet ovan (Ÿ2.1) väljs efter varje drag en restriktion, k, som innebär att nästa spelare måste lämna kvar k modulo m stickor i den hög draget görs från. En annan variant är att restriktionen, k, istället innebär att nästa spelare måste ta k modulo m stickor från den hög draget görs i.

Detta spel är redan beskrivet och löst [2], vi kommer att formulera lösningen så att den enkelt kan jämföras med Sats 3.

2.2.1 Optimalt spelande

Varje drag enligt den nya varianten kommer från en godtycklig position (a1, . . . , an)k att minska en valfri hög ai med r där r modulo m = k. Vi kan skriva om r och positionen (a1, . . . , an)k på samma sätt som i Ÿ2.1.1, vilket ger oss

r = m · t + k (a1, . . . , an)k =b1, . . . , bn

ε1, . . . , εn



k

(11)

där k är restriktionen och m är det valda spelet.

Varje drag ai− rkan skrivas om på samma sätt som ovan, vilket ger ai− r = (m · bi+ εi) − (m · t + k) = m · (bi− t) + εi− k

där t kan vara noll om och endast om 1 ≤ k ≤ εi. Det gör att vi kan tvinga en spelare till att minska något bi genom att välja restriktionen, k, till antingen noll eller större än största εi. Genom samma resonemang som i Ÿ2.1.1 kan sats 4 nedan bevisas.

Sats 4.

(a1, . . . , an)k∈ P ⇐⇒ b1⊕ · · · ⊕ bn= 0 och k /∈ [1, max{ε1, . . . , εn}]

där ai = m · bi+ εi och εi ∈ [0, m − 1].

Bevis. Vi använder induktion över a1+· · ·+an. I basfallet a1+· · ·+an= 0

nns inga drag att göra och spelet är slut.

Anta att Sats 4 gäller om a1+ · · · + an< A, för något specikt tal A. Vi ska visa att den då även gäller om a1+ · · · + an= A.

(⇐=)Anta för en godtycklig position att a1+ · · · + an= A. Anta att det högra villkoret är sant för den positionen. Det gör att varje drag måste mins- ka något bi, vilket enligt Sats 1 (Ÿ1.3) resulterar i att nimsumman för varje resulterande position är skild från noll. Induktion ger att varje resulterande position är ett N . Den ursprungliga positionen är då per denition(Ÿ1.2) ett P.

(=⇒)Anta istället att högra villkoret är falskt för en godtycklig position där a1+ · · · + an= A. Det ger två fall.

Om b1⊕ · · · ⊕ bn6= 0nns det, på samma sätt som i Nim (Ÿ1.4), ett drag som minskar ett bi sådant att nimsumman för den resulterande positionen är noll för att sedan välja restriktionen till k = 0.

Om b1⊕ · · · ⊕ bn = 0 och 1 ≤ k ≤ max{ε1, . . . , εn} nns det minst ett drag som bara minskar ett εi och sedan väljer en ny restriktion k = 0.

Induktion ger att den resulterande positionen i båda fallen är ett P. Per denition är den ursprungliga positionen ett N .

2

8

(12)

2.3 Får inte ta K modulo m stickor

Båda spelen ovan går att utöka genom att ändra denition på restriktionen till "Får inte lämna kvar K modulo m stickor"respektive "Får inte ta K modulo m stickor", där K är en mängd av tal som blockerar drag. Det sist- nämnda är även det beskrivet och löst i [2]. Vi kommer att formulera om lösningen så att den enkelt kan jämföras med Sats 3 och Sats 4. Observera att spelet i Ÿ2.2 är ett specialfall av det nyss beskrivna spelet. Eftersom om mängden K innehåller alla utom k stickor blir den restriktionen ekvivalent med att nästa spelare måste ta k stickor.

2.3.1 Optimalt spelande

Innan spelet startar väljs en storlek, s, på mängden K samt ett m. Därefter spelas spelet på samma sätt som ovan genom att ett drag görs genom att spelaren först tar stickor och sedan väljer en ny restriktion.

Lösningen för det här spelet är helt oberoende av m. Den är istället beroende av s. Om vi för varje position (a1, . . . , an)k skriver om varje ai = (s + 1) · bi+ εi, där εi ∈ [0, s]får vi

(a1, . . . , an)K =b1, . . . , bn ε1, . . . , εn



K

.

Sats 5.

(a1, . . . , an)K ∈ P ⇐⇒ b1⊕ · · · ⊕ bn= 0 och K ⊇ [1, max{ε1, . . . , εn}]

där ai = (s + 1) · bi+ εi och εi ∈ [0, s]. Bevis. Beviset nns redan beskrivet i [2].

(13)

3 Öppna problem

Det är intressant att för spelen i Ÿ2.1 och Ÿ2.2 är strategin nästan densamma.

Den enda skillnaden är att valet av restriktion är förskjutet ett steg. Grunden i båda spelen är att skriva om varje position på ett sätt som skapar en del som är ekvivalent med Nim och en annan del där för varje position nns minst ett val av restriktion som tvingar nästa spelare att göra ett drag i delen som är ekvivalent med Nim.

3.1 Får inte lämna kvar K modulo m stickor

I detta spel väljs en storlek, s, på mängden, K, och ett m som skapar spelet

"Får inte lämna kvar K modulo m stickor". Ett drag består av att man först tar ett antal stickor och sedan väljer en ny restriktionsmängd K av storlek s.

Det nns anledning att tro att detta spel inte går att lösa med samma strategi som för spelet i Ÿ2.3. I exemplet nedan ser vi ett exempel där samma strategi inte går att tillämpa.

Exempel. Låt oss spela spelet där s = 1 och m = 3. Positionen (14, 15, 1)K

skrivs om på samma sätt som i Ÿ2.3, ai = 2 · bi+ εi, och vi får b1 = 7, b2 = 7, b3 = 0 och ε1 = 0, ε2 = 1, ε3 = 1. Nimsumman 7 ⊕ 7 ⊕ 0 = 0 för den posi- tionen. För att positionen ska vara ett P måste vi kunna tvinga nästa spelare till att ändra något bi. Väljer vi K = {0}, får nästa spelare inte lämna kvar 0 modulo 3stickor. Det gör att nästa spelare kan minska andra högen till 14 stickor och nimsumman kommer fortfarande vara noll för den resulterande positionen. Samma drag kan göras för K = {1}. Om vi väljer K = {2} kan vi ändra tredje högen till 0 och nimsumman kommer fortfarande vara noll.

Anledningen till att samma strategi inte kan tillämpas i detta spel utom i specialfallet (Ÿ2.1) är att detta spel är beroende av m.

10

(14)

Referenser

[1] Thomas S. Ferguson. Game Theory. UCLA 2008.

[2] Hillevi Gavel, Pontus Strimling. Nim with a modular Muller Twist. In- tegers 2004.

References

Related documents

Svar: Jag kunde bygga 5 kvadrater (fyra små och en lite större).. Hur många stickor behöver du om du ska bygga

Bygg minst fem olika rektanglar med omkretsen 20 stickor.. Bygg en kvadrat med omkretsen

Andelen som tycker att gränsen för rattfylleri borde gå vid 0 promille har varierat mellan 50 och 57 procent under åren 1990 till 2002..

Drygt 40 procent av samtliga, betydligt fler kvinnor än män, tycker att straffet för fortkörning borde vara hårdare.. ”Polisens toleransgräns vid fortkörning

Enligt föräldrarna till de barn i åldrarna 0–6 år som cyklar på tvåhjulig cykel använde 96 procent av barnen alltid eller nästan alltid hjälm år 2008. Då mätningen

Antalet matcher är till antalet detsamma som antalet sätt vi kan bilda ett oordnat par med spelare från två olika länder.. I det första valet väljer vi den ena spelaren, fritt bland

Least likely case: Ett kritiskt fall med ogynnsamma omständigheter (om teorin får stöd här får den sannolikt stöd även under mindre ogynnsamma omständigheter. Man gör det svårt

Most likely case: Ett kritiskt fall med gynnsamma omständigheter (om teorin inte får stöd här, får den sannolikt inte stöd någon annanstans heller. Man gör det lätt för