Már megint a Collatz-sorozatról
A Collatz-sorozattal már több alkalommal találkozhattak olvasóink:
Tikktakk
Collatz után szabadon
Annak oka, hogy ismét témául választottuk ezt a sorozatot az, hogy Dr. Szilassi Lajos tanár úr egy érdekes GeoGebra anyagra talált, aminek Sorin Borodi romániai kolléga a szerzője. Az érdekessége ennek a GeoGebra-appletnek az, hogy miután megadjuk a sorozat első tagját, szinte azonnal kiírja a sorozat tagjait addig, amíg először megjelenik az 1, ami ugye meg szokott történni.
A szerző nagyon ügyesen, nagy szakértelemmel használta ki a GeoGebra lehetőségeit, ami tanulságos lehet azok számára, akik mélyebben meg akarnak ismerkedni a GeoGebrával. Ez indokolja azt, hogy újra elővesszük a Collatz-sorozat témáját.
Szilassi tanár úrral kicsit megfésültük a programot. Lényegében csak a kapott eredmény kiíratásában tértünk el az eredeti ötlettől.
Ez alapján készült az alábbi GeoGebra fájl.
Javasoljuk, hogy kipróbálást abban az esetben (is), amikor az első tag 837799, mert - az 100000-nál nem nagyobb számok között - ez esetben kell a legtöbbször alkalmazni a sorozat hozzárendelési szabályát, amíg eljutunk az 1-ig. De tanulságos lehet a 27 és a 31 első tagú Colllatz-sorozat vizsgálata is.
A következőkben megmutatjuk a fenti fájlban használt eszközöket. Előrebocsátjuk, hogy a GeoGebra listakezelésében nagyon sok lehetőség rejlik.
1. f(x)= Ha(floor(x/2)-x/2≟0,x/2, 3x+1)
Ez a függvény tartalmazza Collatz-sorozat képzési szabályát. (Páros x-hez a felét, páratlan x-hez a háromszorosánál eggyel nagyobb számot rendel a függvény.
2. L=IterációLista(f, n, 1000)
Ez a parancs létrehozza az L listát, ami a Collatz-sorozat első 1000 tagját tartalmazza. (Feltételezhető, hogy ezek között már szerepel az 1.)
3. Egy összetett parancs következik, ami az N listát definiálja:
Ezt az parancsot részleteire bontva beszéljük meg.
a) Hossz:=Pozíció(1,L)
Az L listában az első 1 sorszáma.
A Collatz-sorozat tagjai csak az első 1 előfordulásáig érdekelnek bennünket, a többi tag elhagyható. Erre szolgál a következő parancs.
b) ListaRész(L,1,Hossz)
Az L lista elemei közül "elfelejti" az első 1 után következőket.
Ezzel a feladat lényegi részét elvégezte a program, a következő manipulációk az output formájának megadása miatt szükségesek.
c) Az Oszlop értékét a felhasználó adhatja meg. Ezzel határozhatja meg azt, hogy a sorozat tagjainak kiírása hány oszlopban történjen, biztosítva, hogy az adatok jól láthatók legyenek a rendelkezésre álló területen.
d) Sor:=floor((Hossz-1) / Oszlop) A Hossz és az Oszlop ismeretében a parancs kiszámolja, hogy hány sorban fér el a megjelenítés.
A továbblépés előtt szólni kell arról, hogy GeoGebra Sorozat fogalma eltér az matematikai analízis/calculus fogalmától. Rendezett elem n-est jelent.
e) A Collatz-sorozat első Hossz tagját Sor darab sorba és Oszlop darab oszlopba rendezve kell megjeleníteni. Ezt oldja meg a két egymásba skatulyázott Sorozat parancs. Ez azt jelenti, hogy itt lényegében "Sorozat"-ok "Sorozat"-áról van szó.
4. Az N lista tulajdonságait megadó panelen bekattintottuk a "Legördülő listaként megjelenít" tulajdonságot.
Megjegyzés: A GeoGebra szerzőként azt tünteti fel, aki elhelyezte az anyagot az oldalon. Ezért csak itt tudom jelezni, hogy ezen írás létrejöttében döntő szerepe Dr. Szilassi Lajosnak volt.
(Tarcsay Tamás)