Funk.1
- Due Dec 3, 2021 by 7pm
- Points 10
- Submitting a file upload
- File Types hs
- Available after Nov 8, 2021 at 12am
A programkód minőségét is értékelem: komment-eljünk, adjunk "olvasható" neveket a változóknak, gondolkodjunk a specifikáción.
Minden függvénynek adjuk meg a típusát (ha nem tudjuk, akkor kérdezzük meg a rendszert a :t fgv paranccsal).
Írjunk HASKELL függvényeket a következő feladatok megoldására:
- Határozzuk meg az N-edik Fibonacci-számot. Számítsuk ki a 30-adik elemét a sornak. Mi történik, ha az 150-edik Fibonacci-számot szeretnénk meghatározni?
F(N) Fibonacci-szám, ha F(N) = F(N-1) + F(N-2), illetve F(0)=1, és F(1)=1.1
- Határozzuk meg aFibonacci-számok (végtelen) listáját, majd a TAKE függvényt használva határozzuk meg az első 30, majd az első 150 elemet.
1
- Írjunk függvényt, mely visszaadja egy lista két legnagyobb elemét (ne használjunk rendezést vagy listamódosítást igénylő műveleteket).
1
- Írjunk függvényt, mely összefésül két listát. A két listáról feltételezzük, hogy rendezettek és legyen a kimenő lista is rendezett.
1 - Írjunk függvényt, mely egy listáról meghatározza, hogy palindróma-e: a lista ugyanaz, mint a lista fordítottja (pl. a
"lehel"
igen, a"csato"
nem).1 -
Töröljük egy lista minden K-adik elemét.
1
- Valósítsuk meg a "run-length encoding" algoritmust Haskell-ben: egy redundáns - sok egyforma elemet tartalmazó - listát úgy alakítunk kompakt formába, hogy az ismétlődő elemek helyett egy párost tárolunk, ahol az első az elem, a második a multiplicitás.
Példáulkompakt(["a","a","a","c","c","b"]) -> [("a",3),("c",2),("b",1)]
Írjuk meg a kódokat úgy, hogy a listát csak egy alkalommal járjuk be.1 -
Eratosztenész szitája egy módszer, mellyel az összes prím listáját létre lehet hozni.
A módszer a következő: a [2,..] listával indulva, mindig prímnek tekintjük a lista fejét, majd a szitát alkalmazzuk arra a listára, melyből kiszűrtük a lista fejének (először a kettőnek) a többszöröseit.- Írjunk egy függvényt, mely kiszűri egy szám többszörösét egy listából
kiszur
. - Írjuk meg a szitát, alkalmazva a
kiszur
függvényt.szita
. - Implementáljunk egy függvényt, mely a prímszámok közül kiválasztja az N-ediket
valaszt
.
2
- Írjunk egy függvényt, mely kiszűri egy szám többszörösét egy listából
-
Keressük meg bizonyos számok egyedi többszöröseinek összegét egészen egy felső korlátig (azt kizárva).
Pl. Ha felsoroljuk az összes 20 alatti természetes számot, amelyek 3 vagy 5 többszörösei, akkor 3, 5, 6, 9, 10, 12, 15 és 18-at kapunk.
Ezeknek a többszöröseknek az összege 78.
megold 20 [3, 5] == 78
1