Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Lösungsversuch Miniklausur WS 2019/20   (Übersicht)

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige ÜberarbeitungVorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
pruefungen:bachelor:aud:loesung-miniklausur-19 [17.02.2020 17:01] kat04pruefungen:bachelor:aud:loesung-miniklausur-19 [19.06.2020 12:02] (aktuell) kat04
Zeile 1: Zeile 1:
 ===== Lösungsversuch Miniklausur WS 2019/20 ===== ===== Lösungsversuch Miniklausur WS 2019/20 =====
 +
 +
 +==== Aufgabe 1 (Wissensfragen) ====
 +1) 1&2
 +
 +2) 2&3
 +
 +3) 3&4
 +
 +
 +==== Aufgabe 2 (ADT) ====
 +
 +**a)**
 +
 +erweitern(p, Leer) = Leer
 +
 +erweitern(p, Cons(Cons(k, l1), l2)) = Cons(Cons(p,Cons(k,l1),l2))
 +
 +
 +**b)**
 +
 +alle(Leer) = Leer
 +
 +alle(Cons(k, leer)) = Cons(Cons(k,Leer),Leer)
 +
 +alle(Cons(k, l)) = erweitern(k,alle(l))
 +
 +**c)**
 +
 +uHelfer(Leer,ergebnis) = ergebnis
 +
 +uHelfer(Cons(k,l),ergebnis)= uHelfer(l,Cons(k,ergebnis))
 +
 +
  
 ==== Aufgabe 3 (Backtracking) ==== ==== Aufgabe 3 (Backtracking) ====
-(sehr unsicher, kann aber als Diskussionsgrundlage genutzt werden)+
  
 **a)** **a)**
Zeile 75: Zeile 109:
 </code> </code>
  
-==== Aufgabe 2 (ADT) ==== 
  
 +
 +==== Aufgabe 4 (Memoization und DP) ====
 **a)** **a)**
 +<code java>
 + long facMem(int k, long[] fs) {
 +         if (k <= 0)
 + return 1;
 + if (fs[k] > 0)
 + return fs[k];
 + return k * facMem(k - 1, fs);
 + }
  
-erweitern(pLeer) = Leer + long multiFacMem(int kint... ks
- + long div 1; 
-erweitern(p, Cons(Cons(k, l1), l2)) = Cons(Cons(p,Cons(k,l1),l2))+ long[] arr = new long[k + 1]; 
 + for (int ki : ks) 
 + div *facMem(kiarr); 
 + return facMem(k, arr/ div;
  
 + }
 +</code>
  
 **b)** **b)**
- +<code java> 
-alle(Leer) = Leer + List<List<Integer>> powers(int n, int k
- + List<List<Integer>> all new ArrayList<>(), part; 
-alle(Cons(k, leer)) = Cons(Cons(k,Leer),Leer+ if (n <= 1
- + List<Integer> last new ArrayList<>(); 
-alle(Cons(k, l)) = erweitern(k,alle(l)) + last.add(k)
- + all.add(last); 
-**c)** + } else { 
- + for (int ki = k; ki >= 0; ki--
-uHelfer(Leer,ergebnis= ergebnis + part powers(n - 1k - ki); 
- + for(List<Integer> l:part{ 
-uHelfer(Cons(k,l),ergebnis)= uHelfer(l,Cons(k,ergebnis)) + l.add(ki); 
- + } 
 + all.addAll(part); 
 + } 
 +
 + return all; 
 + } 
 +</code>