Cím: Egy matematikai diákolimpiai feladatról
Szerző(k):  Makay Géza, Szeged 
Füzet: 2023/február, 73 - 77. oldal  PDF  |  MathML 
Témakör(ök): Matematika, Szakmai cikkek, Nemzetközi Matematikai Diákolimpia, Rekurzív sorozatok

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

A 60. Nemzetközi Matematikai Diákolimpia 5. feladata ([1]) így szólt:*

 
Bath Bankja érméket bocsát ki, melyeknek egyik oldalán H, másik oldalán T betű látható. Harrynek n ilyen érméje van, amelyek előtte balról jobbra, egy sorban vannak elrendezve. Harry ismételten végrehajtja a következő műveletet: ha pontosan k>0 olyan érme van, amin H van felül, akkor megfordítja a balról k-adik érmét; máskülönben minden érmén T van felül, és ekkor Harry megáll. Például n=3 esetén a THT sorozatból indulva THTHHTHTTTTT a lépések sorozata, ami három lépés után megáll.
(a) Bizonyítsuk be, hogy bármi legyen is a kiindulási sorozat, Harry véges sok lépés után megáll.
(b) Minden C kiindulási sorozatra jelölje L(C) azt a lépésszámot, ahány lépés után Harry megáll. Például L(THT)=3 és L(TTT)=0. Határozzuk meg L(C) átlagos értékét, amint C végigfut a 2n lehetséges kiinduló sorozaton.
 

A Középiskolai Matematikai és Fizikai Lapok 2019. novemberi számában megjelent a feladat egy lehetséges megoldása ([2]). Ebben a cikkben megadunk egy másik (talán egyszerűbb) megoldást és továbbgondoljuk a feladatot.
Az (a) részt bizonyítsuk teljes indukcióval. n=1,2 érme esetén az állítás könnyen ellenőrizhető a kevés lehetséges eset végigvizsgálásával. Tegyük fel, hogy n-ig igaz az állítás, tekintsük az n+1 érme esetét. Három esetre bontjuk a feladatot.
1.Ha az utolsó, (n+1)-edik érmén T látható (ez az esetek felében fordul elő), akkor azt az érmét sosem fogjuk megfordítani, hiszen ahhoz az kellene, hogy az összes érmén a H legyen látható. Így az első n érmére alkalmazva az indukciós feltevést beláttuk ezt az esetet.
2.Ha az utolsó érmén H, az elsőn pedig T van. Ekkor, ha csak az utolsó érmén van H, (a művelet szerint) sorrendben az elsőtől az n-edik érmet megfordítva mindenütt H lesz felül, és végül az (n+1)-ediktől az elsőig haladva mindegyiket átfordítjuk T-re. Egyébként a megadott művelet szerint mindaddig, amíg az első érmén T és az (n+1)-edik érmén H van csak a másodiktól az n-edik érméket forgathatjuk, méghozzá pontosan úgy, mintha az első és az (n+1)-edik elem ott sem lenne. Alkalmazva az indukciós feltevést (n-1)-re elérhetjük, hogy a másodiktól az n-edik érméig mindegyiken T látsszon. Ezután a már leírtak szerint járunk el, és végül mindegyik érmét átfordítjuk T-re, amivel beláttuk ezt az esetet is.
3.Ha utolsó és az első érmén H van, akkor a megadott művelet szerint mindaddig, amíg az első érmén H van csak a másodiktól az (n+1)-edik érméket forgathatjuk, méghozzá pontosan úgy, mintha az első elem ott sem lenne. Alkalmazva az indukciós feltevést n-re elérhetjük, hogy a másodiktól az (n+1)-edik érméig mindegyiken T látsszon, majd az első érmét megfordítva befejeztük az indukciós bizonyítást.

Az a jó ebben a bizonyításban, hogy a (b) részre is ad egy rekurzív képletet. Jelöljük n elem esetén An-nel az átlagos lépésszámot. A fenti 1. pont An+1-hez 12An-el járul hozzá, hiszen az esetek felében fordul az elő. Hasonlóan, a 2. pont 14(An-1+2n+1)-et ad An+1-hez, hiszen az az esetek negyedrészében fordul elő, első lépésként a ,,középső'' n-1 elemet kell T-re fordítani, és utána további 2n+1 lépés kell a feladat befejezéséhez. A 3. pont egy kicsit trükkösebb: az is az esetek negyedrészében fordul elő, de ott a második elemtől kell mindent T-re fordítani úgy, hogy tudjuk, hogy az utolsó elem H. Az összes lehetséges esetben szükséges lépések száma ebben az esetben 2nAn-2n-1An-1, hiszen ,,megszorítások'' nélkül lenne 2nAn lépés, de ebből ki kell vonni azon lépések számát (2n-1An-1), amikor az utolsó elem T. Ez alapján a 3. pont hozzájárulása An+1-hez
14((2nAn-2n-1An-1)/2n-1+1).
Így a következő rekurzív képletet kapjuk:
An+1=12An+14(An-1+2n+1)+14(2nAn-2n-1An-12n-1+1)=An+n+12.
Kiindulva akár az A0=0 értékből kapjuk, hogy
An=i=1ni2=n(n+1)4,
amivel a feladatot megoldottuk.
 
Bár a (b) rész egy érdekes kérdést vet fel, mégis természetesebb lenne azt kérdezni, hogy maximum hány lépésen belül fejeződik be a művelet. Persze attól, hogy ez természetesebb kérdés, nem lesz feltétlenül egyszerűbb, mint ahogy ebben az esetben sem az. Egy felső becslést könnyen tudunk adni a fentiek alapján: a 2. pontbeli eljáráshoz szükséges a legtöbb ,,extra'' lépés, miután befejeztük a többi elem megfelelő oldalra fordítását. Eszerint ha Mn-nel jelöljük az n elem esetén szükséges lépések maximális számát, akkor kapjuk az Mn+1Mn+(2n+1) egyenlőtlenséget, amiből a fentiekhez hasonlóan M0=0-ból kiindulva nyerhetjük az Mnn2 becslést. De ha akár csak n=2-re ellenőrizzük a négy lehetséges esetet, már ott sem érhető el a 4 lépéses maximum. Márcsak azért sem, mert a fentiek alapján mindenképpen véget ér az eljárás, így az eljárás során érmék állásai nem ismétlődhetnek, és a 4 lehetséges állás között maximum 3 átmenet/lépés lehet. Elméleti úton is viszonylag könnyen belátható, hogy a felső becslés nem lehet szigorú n2-re, hiszen a 2. pont csak akkor működik, ha az utolsó elem H, a rekurzió miatt az előtte lévő elemnek is H-nak kell lennie, és így tovább, vagyis az összes elem H lenne, azzal viszont n lépésben végez az eljárás.
Ahogy a jól ismert mondás tartja: ,,a probléma félig meg van oldva, ha tudjuk, hogy mi a probléma''. Próbáljunk meg tehát sejtést szerezni a maximális lépésszámra. Leghatékonyabb, ha erre programot írunk, hiszen már n=5 érmére is elég hosszadalmas végigszámolni a 32 esetet. A következő eredményt kapjuk:
 
nmaxpéldanmaxpélda11H945TTTTHHHHH23TH1055TTTTTHHHHH36THH1166TTTTTHHHHHH410TTHH1278TTTTTTHHHHHH515TTHHH1391TTTTTTHHHHHHH621TTTHHH14105TTTTTTTHHHHHHH728TTTHHHH15120TTTTTTTHHHHHHHH836TTTTHHHH16136TTTTTTTTHHHHHHHH

 

A minta könnyen felismerhető: az első [n/2] (n/2 egészrész) érmén T van felül, a többin H. A maximális lépésszámot sem nehéz kitalálni: az egymás utáni számok különbségei a természetes számokat adják, ami alapján
Mn=i=1ni=n(n+1)/2
lenne. Ez a probléma, ezt kellene belátni.
Nézzük meg pontosan, hogyan is működik az eljárás. Minden érme megfordításával eggyel nő vagy csökken a H-k száma, így a következő lépésben az eggyel jobbra (nőtt) vagy eggyel balra (csökkent) levő érmét fogjuk megfordítani. Vagyis amíg T-ket találunk, addig H-kat hagyunk magunk mögött és jobbra lépünk, akkor ,,fordulunk vissza'', amikor H-t találunk. Hasonlóan: amíg H-kat találunk, addig T-ket hagyunk magunk mögött és balra lépünk, akkor fordulunk vissza, amikor T-t találunk (vagy megállunk, ha nem találunk T-t). Ebből elég világos módon kirajzolódik egy balra-jobbra (vagy jobbra-balra) söprés jellegű művelet, amelyik minden irányban mindig legalább eggyel túllép az addig végigsöpört területen és jobbra haladva H-kat, balra haladva T-ket hagy maga mögött. Mennyi lehet akkor a maximális lépésszám? Visszafelé haladva az utolsó maximum n lépés hagyhat T-t maga mögött balra lépve, előtte n-1 lépés jobbra, azelőtt n-2 lépés balra stb. Ezzel beláttuk, hogy a maximális lépésszám legfeljebb
n+(n-1)+...+1=n(n+1)/2
lehet. Ahhoz, hogy ez a maximális lépésszám előállhasson az kell, hogy
1.ténylegesen minden irányú söprésnél (kivéve az utolsó) legyen egy ,,visszafordító érme'' és hogy
2.minden visszafordulásnál pontosan eggyel több lépést tegyünk meg, mint az előző, ellentétes söprési iránynál.

Balra menve a T fordít vissza, jobbra menve pedig a H, és a balra illetve jobbra söprések száma legfeljebb eggyel térhet el egymástól. Ez megmagyarázza a fenti mintákat is, amelyekben a bal oldalon vannak a T-k, a jobb oldalon a H-k, és ezek száma legfeljebb eggyel tér el. Direkt módon is könnyen ellenőrizhető, hogy ezek a minták jó példát, sőt, minden n-re az egyetlen lehetséges példát adják a maximális lépésszámra.
 
Érdekes, hogy a maximális és minimális (0) lépésszám átlaga éppen az átlagos lépésszám. Nézzük meg, hogy hány példa van a lehetséges lépésszámokra. Ha már úgyis programot írtunk a problémára, akkor ez sem okoz semmi nehézséget:
 
ndb lépésszámonként  ([0,...,n(n+1)/2])11 121 1 1 131 1 1 2 1 1 141 1 1 2 2 2 2 2 1 1 151 1 1 2 2 3 3 3 3 3 3 2 2 1 1 161 1 1 2 2 3 4 4 4 5 5 5 5 4 4 4 3 2 2 1 1 1  71 1 1 2 2 3 4 5 5 6 7 7 8 8 8 8 8 7 7 6 5 5 4 3 2 2 1 1 181 1 1 2 2 3 4 5 6 7 8 9 10 11 12  ...  12 11 10 9 8 7 6 5 4 3 2 2 1 1 191 1 1 2 2 3 4 5 6 8 9 10 12 13 15  ...  15 13 12 10 9 8 6 5 4 3 2 2 1 1 1101 1 1 2 2 3 4 5 6 8 10 11 13 15 17  ...  17 15 13 11 10 8 6 5 4 3 2 2 1 1 1

 
Ez alapján úgy tűnik, hogy a darabszámok szimmetrikusak az n(n+1)/4 átlagos lépésszámra, ami megmagyarázná az átlagot a maximum alapján, vagy éppen fordítva, a maximumot az átlag alapján. Az a kérdés, hogy be tudjuk-e látni ezt a szimmetriát.
Legegyszerűbb lenne párbaállítani az érmék H ‐ T sorozatait úgy, hogy egy k lépéses mintához egy n(n+1)/2-k lépéses minta tartozzon. Eszerint például n=7 esetén a TTTHHHH maximális lépésszámú mintához a TTTTTTT minimális lépésszámú minta tartozna. Hát, első ránézésre nagyon nem világos, hogy mi alapján rendelnénk egymáshoz pont ezt a két mintát. Közelítsük meg a problémát egy másik oldalról. Mik ezek a fenti táblázatban lévő számsorozatok? Szerencsére az interneten van segítség: az On-Line Encyclopedia of Integer Sequences ([3]). Abba beírva/bemásolva a hosszabb számsorozatokat (a rövidebbek túl sokféleképpen magyarázhatóak), a következő választ kapjuk például n=10-re: A034140: Number of partitions of k into distinct parts from [1,2,3,...,10] ([4]). (Az eredeti szövegben levő n-et k-ra cseréltük, hogy ne keveredjen a cikkben használt jelöléssel, a k a mi esetünkben a lépésszámot jelenti, tehát 0-tól n(n+1)/2-ig mehet.) Vagyis: hányféleképpen bontható a k szám az 1,...,10 számok ismétlés nélküli összegére. Hogy ennek mi köze a mi problémánkhoz? Egy kis utánagondolással ez világossá válik. A fenti jobbra-balra söprésnél a söprések hossza szigorúan növekszik (maximum n lehet), tehát különbözö söpréshosszakat kapunk és azok összege adja ki a teljes lépésszámot. Vagyis a mi problémánk lefordítható a lépésszám különböző számok összegére bontásának feladatára. De a dolog fordítva is működik: egy adott számösszeghez tartozik egy megfelelő H ‐ T sorozat, amit a következő módon konstruálhatunk meg. Rendezzük az összeadott számokat csökkenő sorrendbe és hajtsuk végre a műveletünket a számoknak megfelelően fordítva. Ez azt jelenti, hogy a csupa T állásból és az első pozícióból kiindulva jobbra haladva a legnagyobb szám darabszámú érmét H-ra fordítunk, a visszafordító érmét úgy hagyva balra haladva a második szám darabszámú érmét visszafordítjuk T-re stb. Talán egy példán legegyszerűbb bemutatni az eljárást. Legyen n=10, k=30=9+8+7+4+2, ekkor az egyes számok alapján kialakuló H ‐ T sorozatok a következők lesznek (pirossal a változtatott érméket, kékkel az úgy hagyott, visszafordító érméket jelöljük):
 
 

Eszerint van egy kölcsönösen egyértelmű megfeleltetésünk a H ‐ T sorozatok és az {1,...,n} számhalmaz részhalmazai között (ez utóbbiak felelnek meg az {1,...,n} számok ismétlés nélküli összegeinek). Most már a párbaállítás könnyen kitalálható: egy adott A{1,...,n} halmazhoz tartozzon az A¯={1,...,n}\A halmaz, az A komplementere. Egyrészt ez tényleg párokat ad: a komplementer komplementere az eredeti halmaz. Másrészt megfelelő párokat ad: ha az A halmazban a számok összege k, akkor az A¯ halmazban a számok összege azon számok összege lesz, amelyek nincsenek benne A-ban, vagyis a {1,...,n} halmazbeli számok összege (n(n+1)/2) mínusz k, és pontosan erre volt szükségünk. A fenti példánknál n=7 esetén a TTTHHHH maximális lépésszámú mintához az {1,...,7} halmaz tartozik, ennek komplementere az üres halmaz, ami valóban a TTTTTTT minimális lépésszámú mintának felel meg.
 
Hivatkozások

[1]Középiskolai Matematikai és Fizikai lapok 2019. szeptember, 324‐325.
(http://db.komal.hu/KomalHU/cikk.phtml?id=202207)
[2]Középiskolai Matematikai és Fizikai lapok 2019. november, 450‐455.
(http://db.komal.hu/KomalHU/cikk.phtml?id=202254)
[3]The On-Line Encyclopedia of Integer Sequences (http://oeis.org/)
[4]The On-Line Encyclopedia of Integer Sequences: A034140 számú sorozat.
(http://oeis.org/A034140)

Makay Géza    
SZTE, TTIK, Bolyai Intézet 
E-mail: makayg@math.u-szeged.hu

*Ezt a kutatást a TKP2021-NVA-09 projekt támogatta. A TKP2021-NVA-09 számú projekt a Magyar Innovációs és Technológiai Minisztérium támogatásával valósult meg a Nemzeti Kutatási, Fejlesztési és Innovációs Alapból, a TKP2021-NVA támogatási konstrukció keretében.