Kappa 2014, lösningsförslag på problem 5 Lag Spyken Roger Bengtsson, Sten Hemmingsson, Magnus Jakobsson, Susanne Tegler Problemet I det här problemet betraktas m n stora rektangulära rutnät, där m avser antalet rader och n antalet kolumner. I varje rutnät kan vissa av rutorna vara märkta med ett heltal. Låt A(m, n, k) vara antalet sätt att märka k rutor i ett m n-rutnät så att: I Varje kolumn innehåller maximalt en märkt ruta. II Om kolumn i innehåller en märkt ruta i rad j, så har kolumn i + 1 ingen markerad ruta i någon rad under rad j. III Om en ruta R är märkt, men rutan till vänster inte är det, så är rutan R märkt med 0. IV En märkt ruta R som inte redan är märkt med 0, är märkt med något av talen u,..., 1, 1, 2,..., h där u är antalet rutor under R, inklusive R, och h är antalet rutor till höger om R, inklusive R Anmärkning. Vi tillåter oss att precisera och ersätta villkor III med följande: III (a) Om en ruta i första kolumnen är märkt så är den märkt med 0. (b) Låt R vara en märkt ruta, som inte är i första kolumnen. Då gäller att R är märkt med 0 om och endast om rutan omedelbart till vänster om R inte är märkt. Låt B(m, n, k) vara antalet sätt att märka k rutor i ett m n-rutnät så att Varje kolumn innehåller maximalt en märkt ruta. I varje rad med exakt j märkta rutor, så är varje ruta märkt med något av talen 1, 2,..., j där varje tal förekommer exakt en gång. Visa att 1. A(1, n, k) = n(n 1) (n k + 1). 2. A(m, n, k) = B(m, n, k). 1
1 Lösning deluppgift 1 Med en A n,k -sträng menas ett rutnät som räknas av A(1, n, k) och med en C n,k -sträng menas en A n,k -sträng som har en 0:a i första rutan. Låt a(n, k) vara antalet A n,k -strängar och c(n, k) vara antalet C n,k -strängar. Det gäller att c(n, 1) = 1 för n 1 (1) n a(n, k) = c(i, k), för k 1 (2) i=k c(n, k) = n c(n 1, k 1) + a(n 2, k 1) för n k 2 (3) Den första identiteten följer av att det enda sättet att göra en C n,1 -sträng är att börja med en 0:a och ha övriga rutor omärkta. I den andra identiteten räknas A n,k -strängar efter placeringen av den första 0:an. Den tredje identiteten inses genom att man delar upp C n,k -strängarna i de som har en märkt ruta på plats 2 och de som har en omärkt ruta på plats 2. En C n,k -sträng med märkt ruta plats 2 fås genom att man efter den inledande 0:an sätter en C n 1,k 1 -sträng där den inledande nollan i C n 1,k 1 -strängen ersatts med ett tal bland 1, 1, 2,..., n 1. Varje C n,k -sträng med märkt ruta på plats 2 kan fås på detta sätt och på endast ett sätt. Alltså har vi n c(n 1, k 1) stycken C n,k -strängar från detta fall. En C n,k -sträng med omärkt ruta på plats 2 fås genom att man efter den inledande strängen 0x, där x betyder tom plats, sätter en A n 2,k 1 -sträng. Därmed är (3) klar. Vi skriver om (3) till en identitet som enbart innehåller c-funktionen, c(n, k) = n c(n 1, k 1)+ Vi visar att n 2 c(i, k 1) = (n 1) c(n 1, k 1)+ n 1 c(i, k 1) (4) ( ) n 1 c(n, k) = k! (5) k 1 med induktion (över n). För n = 1 gäller att c(1, 1) = 1 = ( 0 0) 1. Antag att (5) är sant för n = p (och 1 k p), och låt n = p + 1. Fallet då k = 1 är redan utrett i identitet (1), eftersom ( ) p c(p + 1, 1) = 1 = 1! 0 2
För n = p + 1 och 2 k p + 1 har vi att c(p + 1, k) = p c(p, k 1) + p c(i, k 1) = ( ) p 1 p ( ) i 1 (induktionsantagandet) = p (k 1)! + (k 1)! = ( ( ) p 1 p ( ) ) i 1 (bryt ut (k 1)!) = (k 1)! p + = ( ( ) p 1 p 1 ( ) ) i (minska index med 1) = (k 1)! p + = i=k 2 ( ( ) ( )) p p (lemma 1 och lemma 2 nedan) = (k 1)! (k 1) + = k 1 k 1 ( ( )) ( ) p p (fixa till) = (k 1)! (k 1 + 1) = k! k 1 k 1 Slutligen har vi, för n 1 och k 1, att a(n, k) = n c(i, k) = i=k n i=k ( ) i 1 k! = k 1 = n(n 1) (n k + 1) vilket är den efterfrågade likheten. n 1 ( ) i k! = k 1 ( ) n k! = k Anmärkning. Fallet då k = 0 får hanteras separat. Uppenbarligen är a(n, 0) = 1, vilket överensstämmer med formeln då ( n 0) 0! = 1. 1.1 Ett par identiteter för binomialkoefficienter Lemma 1. n i=k ( ) i = k ( ) n + 1 k + 1 Bevisskiss. Upprepad användning av identiteten ( ) ( ) ( ) n + 1 n n = + k + 1 k k + 1 ger resultatet. Lemma 2. Bevisskiss. Inses lätt. n ( ) n 1 = k k 1 ( ) n k 3
2 Lösning deluppgift 2 Eftersom lösningen innehåller flera steg presenterar vi först en kortfattad beskrivning av vår metod. Först kommer vi att visa att A m,n,k -rutnäten kan paras ihop med ett annat system av rutnät som vi kallar A m,n,k. Därmed kommer A(m, n, k) också att räkna A m,n,k-rutnäten. Därefter konstruerar vi rekursionsformler för de tre talföljderna A(m, n, k), B(m, n, k) och S(m, n, k) = n(n 1) (n k + 1)m(m + 1) (m + k 1) k! Vi visar att rekursionsformlerna och startvärdena överensstämmer och därmed att talföljderna överensstämmer. 2.1 Ett modifierat system av rutnät Låt A m,n,k vara ett rutnät som räknas av A(m, n, k). Låt A m,n,k vara ett rutnät som uppfyller samma regler med följande förändringar: Regel II utgår. Regel IV ändras genom att märkning med u,..., 2 ej är tillåtet, dvs. tillåten märkning är med 1, 1, 2,... h. Låt A (m, n, k) vara antalet A m,n,k-rutnät. Vi skall visa att A(m, n, k) = A (m, n, k). Låt A vara mängden av A m,n,k -rutnät och A mängden av A m,n,k-rutnät. Dessa två mängder har en gemensam delmängd, A 1, som uppfyller båda uppsättningarna av regler. Mängden A 2 = A \ A 1 innehåller då de element i A där tal som är mindre än 1 förekommer och A 2 = A \ A 1 innehåller då de element i A som bryter mot (II). 2.1.1 Att göra ett A 2 -rutnät till ett A 2-rutnät Låt en sträng betyda en följd av markeringar på samma rad i ett A 2 -rutnät som börjar med en 0:a och som håller på så länge det finns rutor som är märkta. Varje sträng som innehåller ett tal som är mindre än 1 behandlas på följande sätt: Varje tal som är mindre än 1 i strängen flyttas nedåt samtidigt som vi adderar 1 för varje steg. När vi fått 1 stoppar vi. De tal i strängen som är större än 0 flyttar vi därefter med början från vänster till samma rad som talet i kolumnen omedelbart till vänster och låter (det flyttade) talet vara oförändrat. Slutligen ändrar vi varje 1:a, som har en omärkt ruta till vänster, till en 0:a. 4
Exempel. Vi utgår från strängen/rutnätet 0 1-1 3-2 2-4 -4-2 -3-1 2-2 -2-2 2 1 och får i tur och ordning 0 1-1 3 2-1 2 2 1-1 -1-1 -1-1 -1-1 -1 0 1-1 3-1 2-1 2-1 -1-1 -1 2 1-1 -1-1 0 1-1 3 0 2 0 2 0 0-1 -1 2 1 0 0-1 Man inser att olika strängar ger upphov till olika resultat och därvid att varje A 2 -rutnät på ett entydigt vis kan göras om till sinsemellan olika A 2-rutnät. 2.1.2 Att göra ett A 2-rutnät till ett A 2 -rutnät Gå igenom rutnätet från vänster till höger. När man finner en kolumn i med en märkt ruta i rad j och kolumn i + 1 har en märkt ruta i en rad nedanför rad j har man hittat början på ett block. Detta block börjar i kolumn i + 1 och fortsätter åt höger så länge kolumnerna innehåller en märkt ruta i rad j eller längre ner. Behandla varje block på följande sätt: 0:or som finns i blocket ändras till 1. Sedan flyttas talen upp till rad j samtidigt som vi subtraherar 1 för varje steg om talen är mindre än 0 och behåller talen om de är större än 0. Exempel. Vi utgår från området nedan. Rad j är den översta raden och kolumn i den första kolumnen. Blocket som ska behandlas börjar alltså i andra kolumnnen. I en eventuell kolumn i rutnätet som följer på blockets sista kolumn finns en eventuell märkning i en rad över rad j. 0 0 0 0 2 1 0 2 0 0 0 0-1 2 0 5
övergår i tur och ordning i 0-1 -1-1 2 1-1 2-1 -1-1 -1-1 2-1 0-2 2-4 -1-2 -3-3 2-2 -1-2 -1 2 1 Man inser att olika block ger upphov till olika resultat och därvid att varje A 2- rutnät på ett entydigt vis kan göras om till sinsemellan olika A 2 -rutnät. Alltså finns det lika många element i A 2 som i A 2 och därmed är A(m, n, k) = A (m, n, k). 2.2 Rekursion för A-talen Vi konstruerar en rekursionsformel för A (n, m, k) = A(m, n, k) genom att betrakta A m,n.k -rutnäten. Med C m,n,k menas ett A m,n,k-rutnät som har en 0:a i första kolumnen och med C(m, n, k) menas antalet C m,n,k -rutnät. Det gäller, för m 1, att A(m, n, k) = 0 för n = 0 eller n < k och A(m, n, 0) = 1 för n > 0 A(m, n, 1) = m n C(m, n, k) = (m + n 1)C(m, n 1, k 1) + ma(m, n 2, k 1), för n k 2 (1A) (2A) (3A ) Identiterna utöver (3A ) är enkla att kontrollera. Identitet (3A ) inses genom att man delar upp C m,n,k -rutnäten i de som har en märkt ruta i kolumn 2 och de som saknar märkt ruta i kolumn 2. Ett C m,n,k -rutnät med märkt ruta i kolumn 2 fås genom att man utgår från ett C m,n 1,k 1 -rutnät och fyller på med en kolumn till vänster. Vi ska nu placera en 0:a i den vänstra kolumnen, och betraktar två möjligheter. Ena möjligheten är sätta en 0:a i en rad där C m,n 1,k 1 -rutnätet inte har en 0:a i sin första kolumn. Detta ger (m 1) stycken C m,n,k -rutnät. Andra möjligheten är att sätta en 0:a i den rad där C m,n 1,k 1 -rutnätet har sin inledande 0:a. Då måste den inledande 0:an i C m,n 1,k 1 -rutnätet ersättas med ett tal bland 1, 1, 2,..., n 1. Detta ger n stycken C m,n,k -rutnät. Alltså får vi totalt (m + n 1)C(m, n 1, k 1) stycken C m,n,k -rutnät med märkt ruta i kolumn 2. Ett C m,n,k -rutnät som saknar märkt ruta i kolumn 2 fås genom att man till ett A m,n 2,k 1-rutnät först fyller på med en tom kolumn till vänster och sedan en kolumn med en 0:a i någon rad till vänster om detta. Det finns m rader så vi får ma(m, n 2, k 1) stycken C m,n,k -rutnät som saknar märkt 6
ruta i sin andra kolumn. Därmed är identitet (3A ) visad. Vi noterar att C(m, n, k) = A(m, n, k) A(m, n 1, k) och skriver om (3A ) som en rekursionsformel i A, A(m, n, k) A(m, n 1, k) = = (m + n 1)(A(m, n 1, k 1) A(m, n 2, k 1)) + ma(m, n 2, k 1) = = (m + n 1)A(m, n 1, k 1) (n 1)A(m, n 2, k 1) (3A) 2.3 Rekursion för B-talen Med B m,n,k menas ett rutnät som räknas av B(m, n, k). Det gäller, för m 1, att B(m, n, k) = 0 för n = 0 och B(m, n, 0) = 1 för n > 0 B(m, n, 1) = m n B(m, n, k) B(m, n 1, k) = (m + k 1)B(m, n 1, k 1), för n k 1 (1B) (2B) (4B) Identiteterna utöver (4B) är enkla att kontrollera. Vänsterledet i (4B) räknar antalet B m,n,k -rutnät med märkt ruta i första kolumnen. Det gör också högerledet. För att argumentera för detta utgår vi från ett B m,n 1,k 1 -rutnät och fyller på med en kolumn till vänster. Vi ska nu märka en ruta denna kolumn. Antag att det ursprungliga B m,n 1,k 1 -rutnätet har l i märkta rutor i rad i. Vi kan då, utifrån detta, konstruera l i + 1 stycken B m,n,k -rutnät genom att märka rutan på plats (i, 1). Vi ser märkningen av rad i som en permutation i S li och bygger på denna till en permutation i S li+1 genom att sätta in l i + 1, på någon av l i + 1 platser. Denna permutation skriver vi sedan in i de markerade rutorna i rad i. Eftersom m i=1 l i = k 1 kan kan vi från varje B m,n 1,k 1 -rutnät konstruera (m + k 1) stycken B m,n,k -rutnät med märkt ruta i kolumn 1 och varje sådant rutnät kan konstrueras entydigt på detta sätt. Exempel. Betrakta B 3,9,6 -rutnätet 2 3 1 2 1 1 och låt oss bygga ett B 3,10,7 -rutnät så att ruta (1, 1) blir märkt. Vi har då l 1 = 3 och permutationen (231) S 3. Vi kan bygga på denna till en permutation i S 4, samtidigt som vi bevarar den inbördes ordningen på 2, 3 och 1, genom att sätta in en 4:a på 4 platser, dvs bilda (4231), (2431), (2341) eller (2314). Var och en 7
av dessa permutationer ger ett önskat B 3,10,7 -rutnät, t.ex. ger (2431) rutnätet 2 4 3 1 2 1 1 Vi får alltså l 1 + 1 = 3 + 1 stycken B 3,10,7 -rutnät med märkt ruta (1, 1). På motsvarande sätt får vi 2+1 nät med märkt ruta (2, 1) och 1+1 nät med märkt ruta (3, 1). Sammantaget får vi alltså (3+1)+(2+1)+(1+1) = 6+3 = 3+7 1 stycken B 3,10,7 -rutnät från den ursprungliga B 3,9,6 -rutnätet. 2.4 Rekursion för S-talen Definiera, för m 1, S(m, n, k) = 0 för n = 0 eller n < k och S(m, n, 0) = 1 för n > 0 (1S) och n(n 1) (n k + 1)m(m + 1) (m + k 1) S(m, n, k) = k! för övrigt. Rättframma räkningar ger S(m, n, 1) = m n ns(m, n 1, k) = (n k)s(m, n, k) (2S) (n k + 1)(m + k 1)S(m, n, k 1) = ks(m, n, k) (ii) Utifrån (i) och (ii) får vi också följande (rekursiva) identiteter S(m, n, k) S(m, n 1, k) = = n S(m, n 1, k) S(m, n 1, k) = n k n (n k) = S(m, n 1, k) = n k = k ((n 1) k + 1)(m + k 1) S(m, n 1, k 1) = n k k = (m + k 1)S(m, n 1, k 1) för n k 1 (4S) och (vi räknar vidare) S(m, n, k) S(m, n 1, k) = (m + k 1)S(m, n 1, k 1) = = (m + n 1)S(m, n 1, k 1) (n k)s(m, n 1, k 1) = = (m + n 1)S(m, n 1, k 1) (n 1)S(m, n 2, k 1), (3S) för n k 2 (i) 8
2.5 Slutsats Vi argumenterar för att A(m, n, k) = B(m, n, k) = S(m, n, k) genom induktion över n. Formlerna (1A), (2A), (1B), (2B), (1S) och (2S) visar att likheten gäller för k = 0, 1 (oavsett m och n). Speciellt gäller likheten då för n = 0, 1 (oavsett k och m). Formlerna (3A) och (3S) överensstämmer varför A(m, n, k) = S(m, n, k). Likaså överensstämmer formlerna (4B) och (4S) varför B(m, n, k) = S(m, n, k). Vi noterar att resultatet i deluppgift 1 följer av det i deluppgift 2 genom att man väljer m = 1 och att vi i resonemanget för resultatet i deluppgift 2 inte heller använder resultatet i deluppgift 1. Därför är första delen av vår lösning egentligen överflödig. 9