WP Kalkül


cool danke. ich werds ancher mal auf papier versuchen, weil ich werd hier echt ganz kirre beim lesen und tippen von dem zeug.

auf papier kennt man ja so rechnungen :smiley:


Hey nochmal:

ich hätt noch eine Frage…
wie kommt man denn von

auf

?


+1 auf jeden term addieren


achso klar :smiley:


Naja:

a - 1 < 0 < 1
a - 1 < 0

wenn 0 < 1 ist true und damit kann das < 1 vernachlässigt werden. a-1<0 ist sicher auch < 1.
Und das lässt sich jetzt durch eine simple Addition umformen zu:

a - 1 < 0
a < 1

EDIT: Deutlich zu langsam :wink:


ich hätte zu dem WP Berechnen auch noch eine Frage:

Wie muss man denn bei der Aufgabe b) vom Übungsblatt vorgehen?

A:

long c ( long n ) {
r e turn ( n % 2 == 0) ? n / 2 : (3 n + 1 ) / 2 ;
}

Q: n >= 0 ^ c(n) = (4n+1)−(2n+1)·(−1)^n /4

Ich krieg das gar nicht in eine rechenbare form.


Was wirklich viel hilf, ist das ganze aufzudröseln. Also:

long c (long n) {
   long result;
   if (n % 2 == 0) {
      result = n / 2;
   } else {
      result = (3n + 1) / 2;
   }
   return result;
}

Vielleicht kommst du von da weiter…

Edit: don’t know was hinter deinem Fragezeichen steckt :wink:


so aufgedröselt hab ichs schon… aber ich ich weiß nicht wie ich von da an dann weiter machen soll/muss?

zu edit: welches fragezeichen?


[quote=Maddoc]
Was wirklich viel hilf, ist das ganze aufzudröseln. Also:

long c (long n) {
long result;
if (n % 2 == 0) {
result = n / 2;
} else {
result = (3 * n + 1) / 2;
}
return result;
}

Vielleicht kommst du von da weiter…

Edit: don’t know was hinter deinem Fragezeichen steckt :wink:
[/quote]Das steckt wahrscheinlich dahinter…


[quote=MalteM]

ja genau!


Naja jetzt ist es doch einfach eine if-Anweisung, die du stumpf nach WP-Kalkül-Einsetzmethode ausrechnen kannst.


Das müsste der Anfang sein…

wp(collatz, Q) = [n >= 0 ^        0.5n = 0.25((4n + 1) - (2n + 1) (-1)^n) ^ (n % 2 == 0)] 
               v [n >= 0 ^ 0.5(3n + 1) = 0.25((4n + 1) - (2n + 1) (-1)^n) ^ (n % 2 == 1)]

ja mein problem ist, dass ich ja garkeine größer/kleiner bedingung habe, sondern nur das komische mudolo.

:confused:


danke schonmal. Werd ich mir nachm mittagessen mal anschauen und hoffen, dasses dann klick macht.


man muss sich halt ueberlegen was das gegenteil von % 2 == 0 ist, z.b. % 2 != 0


Hab auch mal noch ne Frage

Wenn ich den Schleifenrumpf mit wp nachgewiesen habe und dann irgendwas rauskommt wie

(I ^ b) => I

Dann ist das ja offensichtlich true.

Muss ich das noch irgendwie genauer ausführen, oder reicht es wenn ich da schreibe true?
Wenn genauer wie?

Wenn ich mich recht entsinne wäre eine Argumentation zu sagen, dass die Invariante gegeben ist und somit als true angenommen werden darf. Und X => true ist immer true. Oder wie ist da der Formalismus


hi, habs mir jetz noch mal ausführlich angeschschaut und teilweise hab ichs auch ähnlich.

Allerdings hab ich ein paar Sachen die ich nicht verstehe. Wie kommt man auf die teile?
und wieso steht bei dem zweiten am Ende n%2==1, da hab ich gedacht es müsste „n%2 ungleich 0“ lauten…

EDIT: Achso n%2 kann ja immer nur 1 oder 0 ergeben. sry


Das war Teil der Vorbedingung Q. Die hat sich halt nur nicht geändert weil es nichts zum einfügen gab.


oh verdammt. Danke!!!


man muss ja dann die einzelnen fälle betrachen, richtig?

ich hab das jetz mal für den ersten Fall gemacht und auch eingesetzt ich krieg dann aber am Ende sowas hässliches:

1,5n+0,75%2==0

irgendwie komm ich absolut nicht zurecht.