Informatika1-2012/HF3

A MathWikiből
(Változatok közti eltérés)
(A lap tartalmának cseréje erre: Í)
1. sor: 1. sor:
Írj Sage függvényt, ''max_szomszed'' néven. A bemenete egy lista, a kimenete egy szótár, mely tartalmazza minden a listában elõforduló elemhez (mint kulcshoz) a szomszédainak maximális összegét. Az elsõ és utolsó elemét a listának hagyjuk figyelmen kívül, tehát csak az 1-tõl a lista hossz-1-ig kell vizsgálnunk az elemeket.
+
Í
 
+
Például, a [3,2,2,3,2,5,3,3,2,2,5,2,5,2] bemenetre a {2: 10, 3: 8, 5: 5} szótárat kapjuk, mivel a 2-es szerepel 2 darab 5-ös között az utolsó elõtti elõtti helyen, a 3-as szerepel 1 darab 5-ös és 1 darab 3-as között a közepe felé, és az 5-ös legnagyobb szomszédianak az összege is csak 5 (ez is a közepe felé).
+
 
+
Ha máshogy nem megy, akkor feltételezhetjük hogy a listában csak nemnegatív elemek vannak.
+
 
+
 
+
A házit most .sws (Sage worksheet) formátumban kérjük. (A Worksheet-ed tetején bal oldalt a 'File...' menüben 'Save worksheet to a file...', és persze T<tankör>_HF3_<userneved>.sws legyen a levélhez csatolt file neve.)
+
 
+
 
+
 
+
Segítség:
+
* for ciklusban használjátok a range függvényt, hogy a lista indexein tudjatok végigmenni
+
* hasznos lehet a len függvény
+
* üres szótárat a következõ módon definiálhattok: d = {}
+
* az i. indexû elemét az L listának L[i]-vel érjük el, a szomszédai az i-1. és i+1. indexû elemek
+
* két ötlet a szótár 0-kal való feltöltésére (ekkor már csak nemnegatív elemekre lesz jó a függvény):
+
** for ciklus fusson a lista megfelelõ elemein, és a szótár megfelelõ kulcshoz tartozó értékét állítsuk 0-ra
+
** használjuk ki, hogy a halmazban nincsenek ismételt elemek, és rajta is végig lehet menni for ciklussal
+

A lap 2012. október 7., 15:22-kori változata

Í

Személyes eszközök