Not logged in. · Lost password · Register

Page:  1  2  next 
gaku
Member since Oct 2011
693 posts
Subject: 24.02.2011
Hi Leute,

ich hab eine Frage zu der Aufgabe 7 (wp Kalkül).
Aufgabenteil d)
Sowie ich mir gedacht habe, müsste die Lösung: V = n - i sein
Aber von einer Freundin habe ich gerade erfahren, dass im letzten Semester folgende Lösung im Vorbereitungskurs bei rauskam:

V = s+ = a[ i ]  für a[ i ] > 0
      s- = a[ i ]  für a[ i ] < 0

Kann mir jemand das vielleicht erklären? Danke.
JohnDoe
Member since Nov 2008
698 posts
Quote by gaku:
ich hab eine Frage zu der Aufgabe 7 (wp Kalkül).
Aufgabenteil d)
Sowie ich mir gedacht habe, müsste die Lösung: V = n - i sein
Aber von einer Freundin habe ich gerade erfahren, dass im letzten Semester folgende Lösung im Vorbereitungskurs bei rauskam:

V = s+ = a[ i ]  für a[ i ] > 0
      s- = a[ i ]  für a[ i ] < 0

Kann mir jemand das vielleicht erklären? Danke.

Ohne polemisch klingen zu wollen:
IMHO kann das höchstens diese Freundin... was da steht entspricht syntaktisch keinem mir bekannten Kalkül (und macht daher auch als Schleifenvariante keinerlei Sinn).

[Bist du ein fake?]
"If you are a good tester, you make the right guesses and hit the defect that is inevitably there. If not, don't worry - your users will find it later."
This post was edited on 2012-07-15, 19:35 by JohnDoe.
Agrajag
Member since Jul 2011
17 posts
Quote by JohnDoe:
[Bist du ein fake?]

Als „oberster Übungsleiter“ ist es nicht deine Aufgabe, deinen Ersties vorzuwerfen, fakes zu sein, wenn sie was nicht verstehen. Wenn du ein bisschen mehr Forum lesen würdest, wüsstest du, dass gaku echt ist. Und das wp-Kalkül liegt nunmal nicht jedem.
MalteM
Member since May 2011
1470 posts
In reply to post #1
Quote by gaku:
Sowie ich mir gedacht habe, müsste die Lösung: V = n - i sein
Klingt gut.
Quote by gaku:
V = s+ = a[ i ]  für a[ i ] > 0
      s- = a[ i ]  für a[ i ] < 0
Hm, das ist eigentlich nur die Berechnung, die in der Schleife gemacht wird, die hat zumindest in diesem Fall nichts mit der Schleifenvariante zu tun. Der einzige Schleifencode, der in diesem Fall wichtig für die Variante ist, ist das i++, weil das die einzige Stelle ist, an der der Wert n−i sich ändert.
Hilfreich ist es vielleicht, sich die Schleife wie folgt umzuschreiben:
  1. int i = 0;
  2. while (i < n) {
  3.     if (a[i] > 0) {
  4.         s += a[i];
  5.     } else {
  6.         s -= a[i];
  7.     }
  8.     i++;
  9. }
Und dann kann man sich den Code Schritt für Schritt anschauen, wo n oder i und damit auch n−i verändert wird.
Würde z.B. das n irgendwo mitten in der Schleife verändert (z.B. am Anfang noch ein
n -= a[i]
oder sowas), dann müsste man auch diese Änderung betrachten und sich fragen, wie sich die Variante ändert. Aber solchen Code hat man doch eher selten (zumindest in AuD-Klausuren).

tl;dr:
n−i ist richtig, es wird selten kompliziertere Varianten geben.
JohnDoe
Member since Nov 2008
698 posts
Quote by MalteM:
Quote by gaku:
V = s+ = a[ i ]  für a[ i ] > 0
      s- = a[ i ]  für a[ i ] < 0
Hm, das ist eigentlich nur die Berechnung, die in der Schleife gemacht wird, die hat zumindest in diesem Fall nichts mit der Schleifenvariante zu tun.

Trotz Trollerei von https://fsi.informatik.uni-erlangen.de/forum/search;nodef=…:
Bitte verwendet solche Schreibweisen/Transskriptionen nicht im Rahmen einer WP-Aufgabe - und schon gar nicht in der Klausur...:
was da steht entspricht syntaktisch keinem mir bekannten Kalkül
"If you are a good tester, you make the right guesses and hit the defect that is inevitably there. If not, don't worry - your users will find it later."
Hasenichts
Member since Apr 2012
554 posts
Wie würde denn eine Antwort aussehen, die bei der d) volle Punkte bekommen würde? Reicht "V = n - i"? Oder sollen wir noch etwas begründen und mit strenger Monotonie etc argumentieren?
gaku
Member since Oct 2011
693 posts
Danke für die Erklärungen.
Die falsche Lösung stammte aus dem Klausurvorbereitungskurs aus dem WS 2011.

Was das mit dem "Bist du ein fake?" sein soll, weiß ich nicht. Deshalb werde ich es einfach mal ignorieren.

@Hasenichts
Kann dir zwar keine genaue Antwort geben, aber besser ist, wenn du einfach noch zwei Sätze dazu schreibst:
1) Monotonfalled, da i steigt
2) Nicht negativ, da i immer < n ist
Denke ich!
MalteM
Member since May 2011
1470 posts
„Geben Sie eine Variante an“ heißt: Schreib eine hin. Fertig. Steht ja nicht da „begründen Sie, dass es eine ist“ oder „bestimmen Sie eine Variante“.
*Ralf
Avatar
Member since Oct 2011
766 posts
Gleiche Klausur, Aufgabe 8:
Im Wiki wurde in der Auswertung des UML-Klassendiagramms für die Methode gibAnzahlMitarbeiter() und das Attribut gebJahr der Datentyp int benutzt, nicht die Klasse Integer.

Meiner Meinung nach war das falsch, deshalb hab ich's geändert. Oder seht ihr das anders?
gaku
Member since Oct 2011
693 posts
Quote by *Ralf:
Gleiche Klausur, Aufgabe 8:
Im Wiki wurde in der Auswertung des UML-Klassendiagramms für die Methode gibAnzahlMitarbeiter() und das Attribut gebJahr der Datentyp int benutzt, nicht die Klasse Integer.

Meiner Meinung nach war das falsch, deshalb hab ich's geändert. Oder seht ihr das anders?

Jo, hätte ich auch so gemacht. Steht ja sonst auch immer int dabei.
Cauca
Member since Oct 2011
909 posts
In reply to post #9
Quote by *Ralf:
[...]wurde [...] der Datentyp int benutzt, nicht die Klasse Integer.

Meiner Meinung nach war das falsch, deshalb hab ich's geändert. Oder seht ihr das anders?

Sofern ich mich nicht irre, stand irgendwo, Integer -> int, sowie noch eine weiter Umwandlung, jene mir soeben entfallen ist.
Sprich deine Änderung wäre falsch.
Ob diese zu Punktabzug führen würde waage ich allerdings zu bezweifeln.

Edit: tippos
skipbo
Member since Jul 2010
215 posts
ich hätte noch eine frage zur aufgabe 1d): die antworten sollen ja wahrscheinlich O(log n) und O(n log n) sein, aber meiner meinung nach würde die funktion f nie terminieren, weil die schleife nicht bei k=1, sondern bei k=0 anfängt.

meine frage ist jetzt erstens, ob ich richtig liege oder irgendetwas übersehen habe, und zweitens, was genau man in so einem moment in der klausur machen sollte... die aufgabe korrigieren?^^ an den rand schreiben?
varj
Member since Apr 2012
78 posts
hi zusummen! Hat jemand einen Lösungsvorschlag zu Aufgabe 2e?
gaku
Member since Oct 2011
693 posts
In reply to post #12
Quote by skipbo on 2013-02-14, 19:15:
ich hätte noch eine frage zur aufgabe 1d): die antworten sollen ja wahrscheinlich O(log n) und O(n log n) sein, aber meiner meinung nach würde die funktion f nie terminieren, weil die schleife nicht bei k=1, sondern bei k=0 anfängt.

meine frage ist jetzt erstens, ob ich richtig liege oder irgendetwas übersehen habe, und zweitens, was genau man in so einem moment in der klausur machen sollte... die aufgabe korrigieren?^^ an den rand schreiben?

Ich habe mal in meine Unterlagen nachgeschaut und ja, deine Antworten wären theoretisch richtig. Und ja, das war ein Schreibfehler, dass k = 0 ist. Sollte sicherlich mit k = 1 sein, da es sonst keinen Sinn macht.
In der Klausur würde ich einen Aufpasser fragen. Falls es wirklich ein Fehler sein sollte, wird das irgendwie korrigiert (an die Tafel geschrieben o.ä.).
gaku
Member since Oct 2011
693 posts
In reply to post #13
+1 varj
Quote by varj:
hi zusummen! Hat jemand einen Lösungsvorschlag zu Aufgabe 2e?

Ja, jetzt schon ^^
  1.     public static boolean allReach(boolean[][] ug, int node){
  2.         boolean schonGehabt[] = new boolean[ug[node].length];
  3.        
  4.         help(ug, node, schonGehabt);
  5.        
  6.         for (int i=0; i<schonGehabt.length; i++){
  7.             if (schonGehabt[i] == false){
  8.                 return false;
  9.             }
  10.         }
  11.         return true;
  12.     }
  13.    
  14.    
  15.     public static void help(boolean[][] ug, int node, boolean[] schonGehabt){
  16.         schonGehabt[node] = true;
  17.        
  18.         for (int i=0; i<ug[node].length; i++){
  19.             if (schonGehabt[i] == false && ug[node][i] == true){
  20.                 help(ug, i, schonGehabt);
  21.             }
  22.         }
  23.     }

EDIT:
Hab den Code mal als Lösung auf der Homepage gepostet. Hoffe es ist kein Fehler drin.

EDIT2:
Fehler korrgiert.
This post was edited 2 times, last on 2013-02-16, 22:56 by gaku.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Page:  1  2  next 
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen