Informatika1-2013/HF3

A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2013. október 8., 14:47-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

Í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.

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
Személyes eszközök