Klausur 09.08.2011
Hallo Leute,
ich habe mich gestern an die Klausur vom versucht 11.08.2011 und bin an folgenden Aufgaben deutlich gescheitert:
-Aufgabe 4) n-Damen-Problem
-Aufgabe 6) Levenshtein-Distanz
bei Aufgabe 4)
habe ich versucht das in scala umzusetzen, jedoch ist mir nicht ganz klar was bei der b) gefordert ist .
also addQueen(ss)(n) soll man so aufrufen können, wobei ss eine Liste ist mit Damen-besetzungen und n gibt die Groesse der Spalten (somit die groesse des Bretts) vor, habe ich das soweit richtig verstanden?
jetzt frage ich mich, von wo komm das „m“ her?? und wie schaut die Umsetzung in Kombination der Funktion „safe“ aus?
c) wäre wahrscheinlich nur der aufruf von addQueen(ss)(n) mit ss == eine leere liste ?!
bei Aufgabe 6)
bin ich mir nicht wirklich sicher wie die Implementierung ausschaut.
zum Feld 1 steht folgendes
zuerst wollte ich die spalten aufteilen auf die anzahl der threads also : table.length/threads und der letzte Thread bekommt den Rest table.length%threads noch aufaddiert.
aber ich denke das ist hier nicht erwünscht weil das dann überhaupt nicht mehr gleichmaessig verteilt wäre wenn es z.b. 7 Spalten gibt und 8 Threads … dann hätten thread[0] bis thread[6] keine spalten und Thread[7] alle restlichen 7, stimmts?
Kann mir jemand einen trick verraten wie ich so etwas umgehe?
Feld 2 :
Jeder Thread muesste sozusagen aus einer input-queue ein READY auslesen um anfangen zu dürfen und nach vollbrachter arbeit ein READY in die output-queue hineinlegen. wobei input queues[threadID] ist und output queues[threadID+1] … letzter Thread dürfte an output nichts übergeben da es so IndexOutOfBoundsException wäre…
ist das der richtige gedanke?
Feld 3:
da bin ich eigentlich Ideenlos… ich hätte jetzt einfach nur geraten dass man t.join(); aufrufen sollte.
Ich wäre dankbar wenn man mir hier weiterhilft und eine scala Implementierung zu Aufgabe 4 wäre sehr hilfreich zum nachvollziehen!