Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Lösung 6.3Denksportaufgabe 1.Denksportaufgabe 1. Welche Farbe hat die letzte Kugel ? Die Farbe der letzten Kugel ist abhängig von der Anzahl der weißen.

Ähnliche Präsentationen


Präsentation zum Thema: "Lösung 6.3Denksportaufgabe 1.Denksportaufgabe 1. Welche Farbe hat die letzte Kugel ? Die Farbe der letzten Kugel ist abhängig von der Anzahl der weißen."—  Präsentation transkript:

1 Lösung 6.3Denksportaufgabe 1.Denksportaufgabe 1. Welche Farbe hat die letzte Kugel ? Die Farbe der letzten Kugel ist abhängig von der Anzahl der weißen Kugeln: Ist die Anzahl gerade, so ist die letzte Kugel schwarz Ist die Anzahl ungerade, so ist die letzte Kugel weiß 2. Welche Aussage gilt vor, in und nach der Schleife (Invariante) Ist die Anzahl der weißen Kugeln gerade, so bleibt sie gerade Ist die Anzahl der weißen Kugel ungerade, so bleibt sie ungerade Es werden entweder 2 weiße Kugeln entfernt oder keine. 3.Terminiert die Schleife ? Begründen Sie ihre Antwort. JA. Die Anzahl der Kugeln vermindert sich bei jedem Zug um genau eine (nach Algorithmus: 2 nehmen, eine geben). Beim Erreichen von 2 Kugeln wird die Schleife noch einmal durchlaufen und terminiert mit einer Kugel.

2 Lösung 6.4Invariante {s+w >= 1} x=s; y=w; {x=s, y=w, x+y 1} {INV: ( (odd(w) odd(y)) (even(w) even(y)) ) x+y 1 } while (x+y>1) { {INV x+y>1} // Vorbedingung für take: x+y>1 take(a,b) // OUT: a no. black, b no white (drawn) {a+b=2, a,b 0} // = Nachbedingung für take switch a: { // a = no of black bullets drawn case 0: {x=x+1; y=y-2}; {INV} // add black, remove two w. case 1; (x=x-1); {INV} // remove black case 2; (x=x-1); {INV} // remove black } {INV} } {INV x+y>1 ( ((odd(w) odd(y)) (even(w) even(y)) ) x+y 1 x+y 1 ( ((odd(w) odd(y)) (even(w) even(y)) ) x+y=1) }

3 Lösung 6.5Vollständige Verifikation // Vorbedingung P(V): a>0 b 0 x = a; y = b; z = 1; // x=a y=b z=1 x>0 b 0 { INV: z x y =a b y 0 } while y > 0 { {INV y>0 (z*x/x)*x y =a b y>0 } if odd(y) then z = z*x; { odd(y) z/x*x y =a b y>0 z*x y-1 =a b y>0 } // else { even(y) z*x y =a b y>0 } { ( odd(y) z*x (2(y div 2)+1)-1 =a b 2(y div 2)+1>0 ) ( even(y) z*x 2(y div 2) =a b 2(y div 2) >0 ) } y = y div 2; // Ganzzahldivision { ( odd(y) z*x (2y+1)-1 =a b 2y+1>0 z*x 2y =a b 2y 0 ) ( even(y) z*x 2y =a b 2y >0 z*x 2y =a b 2y>0 ) } x = x*x; { (odd(y) z*x y =a b 2y 0) (even(y) z*x y =a b 2y>0) z*x y =a b ((odd(y) 2y 0) (even(y) 2y 0)) z*x y =a b y 0 } } { INV (y 0) (z*x y =a*b) (y=0) z*x 0 =a b = Q(V) }


Herunterladen ppt "Lösung 6.3Denksportaufgabe 1.Denksportaufgabe 1. Welche Farbe hat die letzte Kugel ? Die Farbe der letzten Kugel ist abhängig von der Anzahl der weißen."

Ähnliche Präsentationen


Google-Anzeigen