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:loesung-miniklausur-15 [09.12.2017 21:43] – ep2910 | pruefungen:bachelor:aud:loesung-miniklausur-15 [01.04.2019 10:27] (aktuell) – SpeedyGonzalez | ||
---|---|---|---|
Zeile 48: | Zeile 48: | ||
private long pLR(int n, long[] ps) { | private long pLR(int n, long[] ps) { | ||
ps[1] = 2; | ps[1] = 2; | ||
- | if (ps[n] >= 2) { | + | if (n >= 2) { |
ps[n] = pLR(n - 1, ps); | ps[n] = pLR(n - 1, ps); | ||
int i = 0; | int i = 0; | ||
Zeile 62: | Zeile 62: | ||
==== Aufgabe 5 - Streuspeicherung ==== | ==== Aufgabe 5 - Streuspeicherung ==== | ||
Diese Aufgabe entspricht 1:1 [[https:// | Diese Aufgabe entspricht 1:1 [[https:// | ||
+ | |||
+ | Nein, nicht ganz. Hier muss im Gegensatz zur großen Klausur nicht das alte Objekt zurückgegeben werden, falls man auf dieses an der zu besetzenden Stelle trifft. Das erkennt man auch daran, dass in der Miniklausur der return-type " | ||
+ | |||
+ | < | ||
+ | class HashSet< | ||
+ | K[][] map; | ||
+ | int s, b, c; | ||
+ | |||
+ | HashSet(int s, int b, int c) { | ||
+ | assert 0 < c && c < s; | ||
+ | this.s = s; //size of map | ||
+ | this.b = b; //bucket size | ||
+ | this.c = c; //collision increment | ||
+ | map = (K[][]) new Object[s][b]; | ||
+ | } | ||
+ | |||
+ | K put(K k, int hk) { | ||
+ | assert k != null && 0 <= hk && hk < s; | ||
+ | int pos = hk; //current position during exploration | ||
+ | do { | ||
+ | for(int i = 0; i < b; i++) { //Für jede Stelle b des Buckets | ||
+ | if(map[pos][i] == null) { | ||
+ | map[pos|[i] = k; | ||
+ | return; | ||
+ | } | ||
+ | pos += c; | ||
+ | pos %= s; //hiermit wird sichergestellt, | ||
+ | } while (pos != hk); //pos wird im do-Block geaendert, wenn es also wieder gleich hk werden wuerde, liegt ein Zyklus vor | ||
+ | |||
+ | throw new IllegalArgumentException(); | ||
+ | } | ||
+ | } | ||
+ | </ |