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 I. 205. feladat (2009. február)

I. 205. A sejtautomata általában sok azonos sejtből (cellából) áll. Az elemek néhány állapotot vehetnek fel. Az egyes sejtek állapotai változnak az idővel (lépésszámmal) attól függően, hogy maga a kérdéses sejt és közvetlen szomszédjai milyen állapotban vannak. Valamennyi sejt egyszerre (párhuzamosan) változtatja állapotát.

Az általunk megvalósított egydimenziós automata sejtjei két állapotot, 1-et és 0-át vehetnek fel. A sejtautomata állapotait, generációit soronként jelenítjük meg. Egy sejt következő generációbeli állapotát két szomszédjának és önmaga állapotának együttese határozza meg. (Az automata első és utolsó cellájában mindig 0 van.)

A környezeti állapot 23=8 féle lehet. Minden állapothoz megadhatjuk, hogy a következő generációra milyen eredményállapotot kapunk.

Szokásos elnevezés, hogy az Eredmény sort, mint bináris számot felfogva, megadják decimálisan az értékét, a szabályt, ezért nevezik pl. a fenti szabályt 30-asnak. A lehetséges szabályok száma 28=256. A kezdőállapot és a szabály együtt határozza meg az eredményt. Az eredmény lehet stabil végállapotú, periodikus, véletlen és egyikbe sem sorolható. Sok közöttük az önhasonló.

Készítsük el az egydimenziós sejtautomata 150 generációjának bemutatását táblázatkezelő program segítségével. A megoldáshoz két munkalapot használjunk. A szabály nevű munkalapon a környezeti állapot -- eredmény kapcsolatot adjuk meg (a fenti táblázat megfelelője található a munkalap A1:I2 tartományában), és a szimuláció lapon a sejtautomata generációit határozzuk meg másolható függvény segítségével az A1:ET150 tartományban. Az első és utolsó oszlop cellái definíció szerint 0-t tartalmaznak, az első sor tartalmazza az induló generációt. A sejtautomata generációit tartalmazó oszlopok szélességét és sorok magasságát állítsuk be úgy, hogy a cellák négyzet alakúak és láthatóak legyenek a képernyőn. A grafikus megjelenítéshez használjunk feltételes formázást.

Beküldendő a táblázatkezelő munkafüzet (i205.xls, i205.ods, ...), illetve egy rövid dokumentáció (i205.txt, i205.pdf, ...), amelyben szerepel a megoldáskor alkalmazott táblázatkezelő neve, verziószáma, valamint a megoldás rövid leírása, valamelyik érdekes ábra kezdő állapotának és szabályának megadása.

(10 pont)

A beküldési határidő 2009. március 16-án LEJÁRT.


Megoldásokról:

Sok jó megoldás érkezett a feladatokra. A leírásokban sajnos kevés szép és érdekes ábrához tartozó szabályról történt említés.

150 154 181

Minta megoldás leírása Balla Attila 11. osztályos tanuló (Budapest, Berzsenyi Dániel Gimnázium) alapján:

Először létrehoztam a szabály munkalapot és elkészítettem az A1:I2 tartományba az állapot-eredmény táblázatot.

Létrehoztam a szimuláció munkalapot az A1:A150 és ET1:ET150 tartományokat feltöltöttem 0-val. A B2:ES150 tartomány celláinak értékeit függvénnyel határozom meg, mégpedig a következő módon: az összefűz függvény segítségével, megkapom azt a háromjegyű számot, ami megadja, hogy az adott cella és szomszédjai milyen értéket vettek fel az előző lépésben. Ezt a háromjegyű számot a VKERES() függvény segítségével megkeresem az állapot-eredmény táblázat állapot sorában, és az alatta lévő eredményt adom a cella értékéül.

Feltételes formázás segítségével a szimuláció munkalap A1:ET150 tartományában a 0 értékű cellákat fehérre, az 1 értékűeket feketére színeztem, valamint a sorok és oszlopok méretét egységesen 10 képpontra állítottam.

Mintamegoldás: i205.xls


Statisztika:

16 dolgozat érkezett.
10 pontot kapott:Balla Attila, Fehér Péter, Janosov Milán, Kővágó Zoltán, Molnár Gábor, Pap 999 Dávid, Póta Kristóf, Sándor Imre, Seres Márk Dániel, Szabó 928 Attila, Tóth Szabolcs, Uray Marcell János.
9 pontot kapott:Barta 111 János, Englert Péter, Horváth 135 Loránd.
4 pontot kapott:1 versenyző.

A KöMaL 2009. februári informatika feladatai