Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » pfp » Lösungsvorschlag
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige ÜberarbeitungLetzte ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
pruefungen:bachelor:pfp:loesungss14 [23.07.2015 16:09] – ThiloK | pruefungen:bachelor:pfp:loesungss14 [22.07.2016 13:03] – Marcel[Inf] | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
**a)** | **a)** | ||
* Bei 3 Arbeitspaketen wird ein Speedup von 1.8 gemessen. | * Bei 3 Arbeitspaketen wird ein Speedup von 1.8 gemessen. | ||
+ | * Auch "bei 2 Arbeitspaketen wird ein Speedup von 1.5 gemessen." | ||
<note tip> | <note tip> | ||
s(n) = 54 s und p(n) = 2 * 6 + 18 s = 30 s => Sp(n) = 54 / 30 | s(n) = 54 s und p(n) = 2 * 6 + 18 s = 30 s => Sp(n) = 54 / 30 | ||
Zeile 13: | Zeile 14: | ||
**c)** | **c)** | ||
- | * 1. & 4. | + | * 1. & 4. |
- | * (def g: ((Int, Int) => Int) => Int) | + | |
Zeile 129: | Zeile 129: | ||
} // Ende class MonteCarloTask | } // Ende class MonteCarloTask | ||
} // Ende class MonteCarlo | } // Ende class MonteCarlo | ||
+ | </ | ||
+ | |||
+ | ==== Aufgabe 5 (gerichteter Graph) ==== | ||
+ | |||
+ | **a)** | ||
+ | < | ||
+ | def isInPar: (V, List[V]) => Boolean = (v, vs) => | ||
+ | // .toList. optional | ||
+ | vs.par.filter(_ == v).toList.nonEmpty | ||
+ | </ | ||
+ | |||
+ | **b)** | ||
+ | < | ||
+ | def find: (V, G) => List[V] = (v, g) => | ||
+ | for (x <- g; if( isIn(v, x.out)) ) yield x.v | ||
+ | </ | ||
+ | |||
+ | ==== Aufgabe 6 (Lauflängenkodierung) ==== | ||
+ | |||
+ | **a)** | ||
+ | < | ||
+ | def encodeHead: Stream[Char] => ((Char, Int), Stream[Char]) = cs => { | ||
+ | val h = cs.head | ||
+ | ((h, cs.takeWhile(_ == h).length), cs.dropWhile( _ == h)) | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | **b)** | ||
+ | < | ||
+ | def encode: Stream[Char] => Stream[(Char, | ||
+ | if (cs.isEmpty) Stream.empty | ||
+ | else encodeHead(cs)._1#:: | ||
+ | </ | ||
+ | **c)** | ||
+ | < | ||
+ | def decode: List[(Char, Int)] => List[Char] = cs => | ||
+ | cs.foldRight( List[Char]() ) ( (e, ls) => List.fill(e._2)(e._1) ::: ls) | ||
</ | </ |