Informatika1-2012/HF3
(2 szerkesztő 3 közbeeső változata nincs mutatva) | |||
1. sor: | 1. sor: | ||
− | Írj Sage függvényt, | + | Í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é). | 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. | 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.) | 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 | |
− | Segítség: | + | *hasznos lehet a len függvény |
− | * for ciklusban használjátok a range függvényt, hogy a lista indexein tudjatok végigmenni | + | *üres szótárat a következõ módon definiálhattok: d = {} |
− | * hasznos lehet a len függvény | + | *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 |
− | * üres szótárat a következõ módon definiálhattok: d = {} | + | *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): |
− | * az i. indexû elemét az L listának L[i]-vel érjük el, a szomszédai az i-1. és i+1. elemek | + | *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 jelenlegi, 2012. október 7., 15:24-kori változata
Í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