Loading [MathJax]/jax/output/HTML-CSS/jax.js
Középiskolai Matematikai és Fizikai Lapok
Informatika rovattal
Kiadja a MATFUND Alapítvány
Már regisztráltál?
Új vendég vagy?

Az A. 893. feladat (2024. december)

A. 893. Egy szövegszerkesztő programban kezdetben egy lábnyom jel (L) szerepel, amelyet szeretnénk megsokszorozni. Sajnos hekkertámadás áldozata lett a gépünk, és csak két funkció működik: a Másolás és a Beillesztés, ráadásul mindkettő 1 Dürer dollárba kerül használatonként. A Másolás funkció használatakor kijelölhetünk egy vagy több egymás utáni jelet a meglévők közül, és a gép megjegyzi azok darabszámát. A Beillesztés funkció használatakor annyi új lábnyom jelet tesz hozzá a gép a jelsorozathoz, amennyit a legutóbbi Másolásnál kijelöltünk. Ha még nem Másoltunk, nem használhatjuk a Beillesztést. Jelölje D(n) azt, hogy legkevesebb hány Dürer dollár kell ahhoz, hogy pontosan n darab lábnyom jelet kapjunk. Bizonyítsuk be, hogy bármilyen pozitív egész k-ra létezik olyan N pozitív egész szám, amelyre

D(N)=D(N+1)+1=D(N+2)=D(N+3)+1=D(N+4)==D(N+2k1)+1=D(N+2k).

Dürer Verseny feladat alapján

(7 pont)

A beküldési határidő 2025. január 10-én LEJÁRT.


Osszuk a lépéseket blokkokra: egy blokk induljon Másolással és záruljon a következő Másolás előtt közvetlenül, azaz minden blokkban pontosan egyszer Másolunk, a blokk első lépéseként. Először megmutatjuk, hogy tetszőleges n esetén el lehet érni n lábnyomot D(n) lépéssel úgy, hogy minden blokk legfeljebb 3 méretű. Indirekten tegyük fel, hogy ez nem igaz, és létezik egy n szám, melyre akármelyik D(n) költségű, n lábnyomot elérő sorozat esetén van legalább 4 méretű blokk. Tekintsünk egy olyan lépéssorozatot, ami D(n) lépés alatt csinál n lábnyomot, és a leghosszabb blokk hossza minimális, ahol ez a minimum k4. Tekintsünk egy k hosszú blokkot, ami tehát egy Másolásból, és k1 Beillesztésből áll. Ehelyett csináljuk azt, hogy a Másolást ugyanúgy megcsináljuk, majd csak k3 Beillesztést csinálunk (ahol k31), majd Másolunk kétszer annyi karaktert, mint amennyit a blokk elején Másoltunk, és ezt egyszer Beillesztjük. Így ugyanannyi lépést használtunk, és végül ugyanannyi lábnyomot kaptunk, azonban a blokkot két rövidebb blokkra osztottuk. Ezt elvégezve az összes k hosszú blokkra rövidítettük a leghosszabb blokk hosszát, így ellentmondásra jutottunk. Ezzel beláttuk, hogy mostantól mindig feltehetjük, hogy minden blokk legfeljebb 3 hosszú.

Ezek alapján megmutatjuk, hogy D(n)-re teljesül az alábbi rekurzió ha n2.

D(n)=min(2+minn/2k<nD(k),  3+minn/3k<n2nkD(k)).

Ez azért teljesül, mert ha n-et felírjuk D(n) költséggel legfeljebb 3-hosszú blokkokkal, akkor az utolsó blokk vagy 2, vagy 3 hosszú. Előbbi esetben az utolsó blokk előttig elő kellett állítani legalább n/2 lábnyomot, majd plusz két dollárért elő tudjuk állítani az utolsó blokkal a kimaradó lábnyomokat. Utóbbi esetben akkor tudjuk egy három hosszú utolsó blokkal elérni, hogy összesen n lábnyom legyen, ha addig van legalább kn/3, illetve ha kétszer ugyanannyit Beillesztve pont n-et tudunk kapni, ami a 2nk feltételt adja.

Kis esetek vizsgálatával meg lehet sejteni az általános képletet D(n)-re, ami a következőképpen írható le, ha n4. Legyen k az egyértelmű pozitív egész szám, melyre 3k+1n3k+1. Majd osszuk még tovább ezt az intervallumot:

  • Ha 3k+1n3k+3k1, akkor D(n)=3k+1,
  • Ha 3k+3k1+1n23k, akkor D(n)=3k+2,
  • Ha 23k+1n23k+23k1, akkor D(n)=3k+3,
  • És ha 23k+23k1+1n3k+1, akkor D(n)=3k+3, ha 2n, és D(n)=3k+4, ha 2n.

Látható, hogy az utolsó esetben felváltva szerepel a 3k+3 és a 3k+4 érték, így amennyiben bizonyítjuk, hogy tényleg ez a képlet D(n)-re, a feladat állításával is készen vagyunk.

A rekurzív képletet használva már kevés nehézség van a képlet k szerinti indukcióval történő bizonyításában, csak végig kell nézni az eseteket. A kezdőlépéshez ellenőrizzük, hogy D(1)=0, D(2)=2, D(3)=3, D(4)=4, D(5)=D(6)=5, D(7)=D(8)=D(9)=6, így k=1 esetén, azaz ha 31+1n32 tényleg teljesül az állítás.

Most tegyük fel, hogy már minden n3k számra bizonyítottuk a képletet, és most igazoljuk 3k+1n3k+1 esetén is.

  • Ha 3k+1n3k+3k1, akkor 3k1+3k2<n/223k1, amiből látható, hogy ha olyan konstrukciót akarunk, amiben kettő hosszú az utolsó blokk, akkor 3k+1 a legjobb, amit el tudunk érni. Továbbá 3k1<n/33k1+3k2, így hármas utolsó blokkal sem tudunk (3k+1)-nél jobbat elérni, azaz ebben az esetben tényleg D(n)=3k+1.
  • Ha 3k+3k1+1n23k, akkor 23k1<n/23k, amiből következik, hogy ha kettő hosszú az utolsó blokk, akkor nem tudunk (3k+2)-nél jobbat elérni, és ennyit pedig el is lehet érni, ha először 3k lépésből csinálunk 3k lábnyomot, majd egy Másolás-Beillesztéssel a további szükséges mennyiséget megcsináljuk. Továbbá ekkor 3k1+3k2<n23k1, így hármas utolsó blokkal sem lehet (3k+2)-nél jobbat elérni, azaz D(n)=3k+2.
  • Ha 23k+1n23k+23k1, akkor 3k<n/23k+3k1, valamint 23k1<n/323k1+23k2, így az előző esetekhez hasonlóan, se kettes se hármas utolsó blokkal nem lehet (3k+3)-nál kevesebbet elérni, de kettes utolsó blokkal ez elérhető.
  • Végül ha 23k+23k1+1n3k+1, akkor 3k+3k1<n/223k, így kettes utolsó blokkal 3k+4 a legjobb, ami elérhető. Továbbá 23k1+23k2<n/33k, így ha 2n, akkor 3k dollárral csinálva 3k lábnyomot, majd egy további megfelelő hármas blokkal el lehet érni összesen 3k+3 dollárért a kívánt mennyiségű lábnyomot. Ha pedig 2n, akkor hármas utolsó blokk esetén is kell 3k+4, mivel minden páros számhoz, ami legalább n/3 szükséges 3k+1 dollár. Ezzel ebben az esetben is igazoltuk a kívánt képletet, ami befejezi a bizonyítást.

Statisztika:

15 dolgozat érkezett.
7 pontot kapott:Aravin Peter, Bodor Mátyás, Czanik Pál, Holló Martin, Keresztély Zsófia, Kocsis 827 Péter, Minh Hoang Tran, Morvai Várkony Albert, Szakács Ábel, Varga Boldizsár, Wágner Márton, Xiaoyi Mo.
5 pontot kapott:1 versenyző.
0 pontot kapott:2 versenyző.

A KöMaL 2024. decemberi matematika feladatai