9.4

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

9.4
Wie finde ich die Postcondition in der Aufgabe heraus?
Ist das für gerade Zahlen (2^k) x k! ?
Danke


Die steht auf S.3 des Aufgabenblattes ganz unten nochmal vollständig.
Also jein - deine Formel ist keine „*condition“…


Hallo,

ich stecke bei der Aufgabe leider etwas fest. Ich habe mich bei der a) für die Invariante df * x!! = n!! AND x >= 0
entschieden, da für n gerade x am Ende des Schleifendurchlaufs 0 sein wird, also die erste Zeile der möglichen Invarianten ausscheiden. Zusätzlich ist die Möglichkeit (df+x)!! = n!! AND x >= 0
auch nicht valide, da sie nicht vor Beginn des Schleifendurchlaufs gilt (wenn man die for-Schleife in eine while-Schleife umschreibt wird das ja schnell ersichtlich).

Allerdings bekomme ich mit meiner gewählten Invariante bei der b) Probleme:

Mal angenommen ich will 3!! ausrechnen, also n = 3, dann gilt vor dem ersten Schleifendurchlauf: 1) df = 1


…sorry ausversehen auf antworten gekommen -.-

weiter im Text:

also es gilt:

  1. df = 1
  2. x = 3

Aber nach dem ersten Schleifendurchlauf gilt:

  1. df = 3
  2. x = 1

und somit nicht mehr: dfx!! = n!!, da 31!! = 3 (!=) 3!!

Sieht hier jemand einen Denkfehler bei mir?


Vermutlich gilt 3!! = 3 or ? :nuts:
Ich denke mal du hast das mit 3! = 6 != 3 verwechselt, nich wahr ? :stuck_out_tongue:


Jo, Denkfehler ^.^

3!! ist durchaus 3, denn:


Ahh shiit, ja hab da an (3!)! = 6! = … gedacht, danke für die Klärung!!


darf/muss man bei der Teilaufgabe d) eine Fallunterscheidung für gerade/ungerade n machen ? weil mir fällt keine terminierungsfunktion ein die für beide fälle eine ganzzahl liefert (vielleicht stell ich mich aber auch nur blöd an :D).


Ich empfehle: Klausur WS12, Aufgabe 9e)
Altklausuren


danke :slight_smile:

Fallunterscheidung
Ich bräuchte kurz etwas hilfe, was die Fallunterscheidung bei der 9.4 angeht.
Also, so weit ich weiß muss ich bei der 9.4b sowie bei der 9.4 c eine Fallunterscheidung machen.
Soll das heißen , dass ich die b und c einfach zwei mal mache (also für gerade und ungerade) und dies dann am ende wieder zurückwandle von z.B. 2^n/2 * n/2! in n!! und dann wieder meine Invariante rauskommen soll? (Ich habe die Aufgabe so schon gemacht, aber ich habe keine Fallunterscheidung gemach, da dies nicht nötig schien bis zu dem Zeitpunkt an dem mir ein Kollege gesagt hat, das man das so machen soll (laut Tutor)).

Update : Okay hat sich erledigt. Ich habe nochmal mit meinem Kollegen gesprochen und der meinete Fallunterscheidung muss vorkommen (so wie ich es nun doch habe), aber man muss nicht die ganze Aufgabe zwei mal lösen.


Also bei der c) brauch man meiner Meinung nach überhaupt keine Fallunterscheidung, weil es nur (I und -b) => Q zu beweisen gilt


Das kommt darauf an, wie man es hinschreibt. Dennoch entstehen aus (I und -b) zunächst „zwei verschiedene Basisfälle“… bitte genau und formal vollständig bleiben!


I schränkt ja x schon ein und -b schränkt x noch weiter ein. Beide Einschränkungen zusammen genommen kürzen x!! einfach aus der Gleichung raus und der Rest ist df = n!! also Q. Somit habe ich überhaupt keine Basisfälle betrachtet. Im Übrigen, wenn man beide Fälle unterscheidet, also gerade und ungerade, rechnet man ein oder zwei Umformungen mehr, aber man erreicht auch df = n!!.


I schränkt nach unten ein, -b nach oben - „dazwischen“ bleibt ein „kleines Intervall“…

Definiere „kürzen x!! einfach […] raus“! Hast du die falsche Invariante erwischt (oder nur zu schnell gefolgert)?

Natürlich: Es sollte bei den AuD-Aufgaben immer so sein, dass Q am Ende folgt, sonst würde die Aufgabe ja den Beweis des Unbeweisbaren fordern. :wink:
Die Lösung der Aufgabe beteht aber darin, diesen Beweisweg möglichst ausführlich/nachvollziehbar dazulegen.


Genau und dieses Intervall sagt aus, dass x = 0 ist.

Es kann natürlich sein, dass ich die falsche Invariante gewählt habe. Mit dem oben Gesagten habe ich (I und -b) zu df*x!! = n!! und x = 0 umgeformt. Da x = 0 ist und 0!! = 1 ist, lässt sich das x!! rauskürzen bzw. mit dem df verrechnen und man erhält df = n!!. Damit habe ich (I und -b) => Q gezeigt. Darin besteht doch auch die Aufgabe in c) oder etwa nicht?


IMHO: Nope.

Wenn du auf x = 0 kommst, dann hast du vermutlich nicht die falsche Invariante genommen, sondern -b falsch umgeformt…


Das war doch überhaupt keine Lösung, schließlich hat mir JohnDoe deutlich gemacht, dass das falsch ist


Gebot 42
Du sollst keine Lösung posten.

Gebot 42.5
Du sollst in deine PM schauen.