Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » aud » Forendiskussionen (Übersicht)
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige Überarbeitung | ||
pruefungen:bachelor:aud:loesungss18 [09.03.2019 22:35] – NotTheCumberbatch | pruefungen:bachelor:aud:loesungss18 [03.08.2019 12:18] (aktuell) – LasagneAlForno | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
===== Forendiskussionen ===== | ===== Forendiskussionen ===== | ||
- | * [[https:// | + | * [[https:// |
+ | * https:// | ||
===== Lösungsversuch ===== | ===== Lösungsversuch ===== | ||
==== Aufgabe 1 ==== | ==== Aufgabe 1 ==== | ||
- | * 1.a) | + | * a) |
<code java> | <code java> | ||
long aDP(int n) { | long aDP(int n) { | ||
Zeile 17: | Zeile 18: | ||
long aDP(int n, long[] a, long[] b) { | long aDP(int n, long[] a, long[] b) { | ||
- | | + | if(n ==0) return |
- | | + | if(n == 1) return |
- | } | + | if(a[n] == -1){ |
- | long resultA; | + | a[n]=aDP(n-2, a, b) + 2*bDB(n-1, a, b); |
- | | + | } |
- | resultA = 1; | + | return |
- | } else if(n == 1) { | + | |
- | | + | |
- | } else { | + | |
- | resultA | + | |
- | } | + | |
- | return resultA; | + | |
} | } | ||
long bDP(int n, long[] a, long[] b) { | long bDP(int n, long[] a, long[] b) { | ||
- | | + | if(n ==0) return |
- | | + | if(n ==1) return 1; |
- | } | + | if(b[n] == -1){ |
- | long resultB; | + | b[n]=aDP(n-1, a, b) + bDB(n-2, a, b); |
- | | + | } |
- | | + | return |
- | }else { | + | |
- | resultB | + | |
- | } | + | |
- | return | + | |
} | } | ||
</ | </ | ||
- | * 1.b) | + | * b) |
<code java> | <code java> | ||
long aIter(int n) { | long aIter(int n) { | ||
Zeile 53: | Zeile 44: | ||
a[1] = 0; | a[1] = 0; | ||
b[1] = 1; | b[1] = 1; | ||
+ | | ||
for (int i = 2; i <= n; i++){ | for (int i = 2; i <= n; i++){ | ||
a[i] = a[i-2] + 2*b[i-1]; | a[i] = a[i-2] + 2*b[i-1]; | ||
Zeile 61: | Zeile 53: | ||
</ | </ | ||
- | * 2.a) | + | ==== Aufgabe |
+ | * a) | ||
^ A ^ B ^ C ^ D ^ E ^ Prio-Queue | ^ A ^ B ^ C ^ D ^ E ^ Prio-Queue | ||
Zeile 72: | Zeile 65: | ||
| 0 | 10 | 5 | 9 | 8 | [ ] | | | 0 | 10 | 5 | 9 | 8 | [ ] | | ||
- | * 2.b) A -> C -> E -> B | + | * b) A -> C -> E -> B |
- | * 2.c) | + | |
+ | * c) | ||
^ uj ^ vi ^ wk ^ γj,k alt ^ γj, | ^ uj ^ vi ^ wk ^ γj,k alt ^ γj, | ||
Zeile 87: | Zeile 81: | ||
|C |E |D|5|4|4| | |C |E |D|5|4|4| | ||
- | | + | ==== Aufgabe |
<code java> | <code java> | ||
class Schuld { | class Schuld { | ||
Zeile 96: | Zeile 91: | ||
} | } | ||
</ | </ | ||
- | a) | + | *a) |
<code java> | <code java> | ||
HashMap< | HashMap< | ||
Zeile 105: | Zeile 100: | ||
dAlt = ds.get(s.s); | dAlt = ds.get(s.s); | ||
dAlt = dAlt == null ? 0L : dAlt; | dAlt = dAlt == null ? 0L : dAlt; | ||
- | ds.put(s.s, dAlt - s.b); | + | ds.put(s.s, dAlt - s.b); |
+ | |||
+ | |||
// eingehender Betrag (zu Geldgeber): | // eingehender Betrag (zu Geldgeber): | ||
dAlt = ds.get(s.g); | dAlt = ds.get(s.g); | ||
- | dAlt = dAlt == null ? 0L | + | dAlt = dAlt == null ? 0L : dAlt; |
- | | + | ds.put(s.g, dAlt + s.b); |
- | ds.put(s.g, dAlt + s.b); | + | |
+ | // | ||
} | } | ||
return ds; | return ds; | ||
Zeile 116: | Zeile 114: | ||
</ | </ | ||
- | b) | + | *b) |
<code java> | <code java> | ||
List< | List< | ||
Zeile 131: | Zeile 129: | ||
dS = d; | dS = d; | ||
} | } | ||
- | if (dS > d) { dS = d;} | + | if (dS > d) { |
+ | S = p; // | ||
+ | | ||
+ | | ||
if (G == null) { | if (G == null) { | ||
G = p; | G = p; | ||
dG = d; | dG = d; | ||
} | } | ||
- | if (dG < d) {dG = d;} | + | if (dG < d) { |
+ | G = p; // | ||
+ | | ||
+ | } | ||
} | } | ||
// begleiche Schuld von S nach G: | // begleiche Schuld von S nach G: | ||
long dmin = Math.min(Math.abs(dS), | long dmin = Math.min(Math.abs(dS), | ||
- | if (deltas.size() == 2){ | ||
Schuld result = new Schuld (S, dMin, G); | Schuld result = new Schuld (S, dMin, G); | ||
ergebnis.add(result); | ergebnis.add(result); | ||
- | } | ||
// aktualisiere deltas von S bzw. G: | // aktualisiere deltas von S bzw. G: | ||
if (dmin == Math.abs(dS)) { | if (dmin == Math.abs(dS)) { | ||
- | | + | deltas.put(G, dG - dmin); |
- | dNeuG += dS; // hier habe ich: dNeuG -= dmin; | + | |
- | deltas.put(G, | + | |
deltas.remove(S); | deltas.remove(S); | ||
+ | // Alternative: | ||
+ | // dNeuG += dS; oder dNeuG -= dmin; | ||
+ | // deltas.put(G, | ||
} else { | } else { | ||
- | | + | deltas.put(S, dS + dmin); |
- | dNeuS += dG; // hier habe ich: dNeuS += dmin; | + | |
- | deltas.put(S, | + | |
deltas.remove(G); | deltas.remove(G); | ||
+ | // Alternative: | ||
+ | // dNeuS += dG; oder dNeuS += dmin; | ||
+ | // | ||
} | } | ||
} | } | ||
Zeile 160: | Zeile 164: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== Aufgabe 4 ==== | ||
<code java> | <code java> | ||
- | * 4.a) | + | * a) |
| | ||
| | ||
| | ||
- | * 4.b) | + | * b) |
| | ||
contains(s, | contains(s, | ||
- | * 4.c) | + | * c) |
| | ||
- | * 4.d) | + | * d) |
| | ||
eval (f,s) sonst | eval (f,s) sonst | ||
- | * 4.e) | + | * e) |
| | ||
- | * 4.f) | + | * f) |
| | ||
^ isBDD(f) | ^ isBDD(f) | ||
- | ^ contains(addAll(collect(t), | + | |
</ | </ | ||
- | * 5. | + | ==== Aufgabe |
* a) | * a) | ||
<code java> | <code java> | ||
Zeile 232: | Zeile 240: | ||
c--; | c--; | ||
} // collect values of current horizontal str8t in sh: | } // collect values of current horizontal str8t in sh: | ||
- | while(++c < 9 && blk[row][c]) { | + | while(++c < 9 && |
sh.add(num[row][c]); | sh.add(num[row][c]); | ||
} | } | ||
Zeile 238: | Zeile 246: | ||
r--; | r--; | ||
} // collect values of current vertical str8t in sv: | } // collect values of current vertical str8t in sv: | ||
- | while(++r < 9 && blk[r][col]) { | + | while(++r < 9 && |
sv.add(num[r][col]); | sv.add(num[r][col]); | ||
} | } | ||
Zeile 281: | Zeile 289: | ||
</ | </ | ||
- | * 6. | + | ==== Aufgabe |
- | * a) 3,4 richtig | + | * a) 3,4 richtig |
- | * b) 2, 3,4 richtig | + | * b) 2, 3 richtig |
* c) 1,4 richtig | * c) 1,4 richtig | ||
- | * d) 1,3 richtig | + | * d) 1,2 richtig |
- | * e) 2 richtig (vielleicht | + | * e) 2 ,3, 4 sind richtig, |
| |