Übung 6.3Denksportaufgabe

3
Übung 6.3 Denksportaufgabe 1. Gegeben sei folgendes Verfahren In einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf. 1.Welche Farbe hat die letzte Kugel 2.Welche Aussage - die einen Hinweis auf die Antwort gibt - gilt vor, in und nach der Schleife (Invariante) 3.Terminiert die Schleife ? Begründen Sie ihre Antwort.

description

. . . Übung 6.3Denksportaufgabe. Gegeben sei folgendes Verfahren - PowerPoint PPT Presentation

Transcript of Übung 6.3Denksportaufgabe

Page 1: Übung 6.3Denksportaufgabe

Übung 6.3 Denksportaufgabe

1. Gegeben sei folgendes VerfahrenIn einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf.

1. Welche Farbe hat die letzte Kugel

2. Welche Aussage - die einen Hinweis auf die Antwort gibt - gilt vor, in und nach der Schleife (Invariante)

3. Terminiert die Schleife ? Begründen Sie ihre Antwort.

Page 2: Übung 6.3Denksportaufgabe

Übung 6.4 Invariante

1. Betrachten Sie nochmals das Verfahren aus der vorgegangenen Übung:

In einem Topf seien s schwarze und w weiße Kugeln - insgesamt mindestens eine. Solange mindestens zwei Kugeln im Topf sind, nimm zwei beliebige Kugeln heraus. Falls Sie gleiche Farbe haben, wirf beide weg und lege eine neue schwarze Kugel in den Topf. Falls sie verschiedene Farben haben, wirf die schwarze weg und lege die weiße zurück in den Topf.

1. Beschreiben Sie das Verfahren als Algorithmus1. Das „Nehmen“ dürfen Sie als Block voraussetzen.

1. Entwerfen Sie den Kopf dieses Blocks,

2. Beschreiben Sie seine Parameter

3. beschreiben Sie sein Verhalten in Form einer Vor- und Nachbedingung

2. Bestimmen Sie die Invariante

3. Beweisen Sie die Korrektheit Ihrer Nachbedingung

Page 3: Übung 6.3Denksportaufgabe

Übung 6.5 Vollständige Verifikation

1. gegeben ist der folgende Algorithmus zum schnellen Potenzieren (Legendre Algorithmus)

// Vorbedingung P(V): a>0 b0x = a; y = b; z = 1; while y > 0 { if odd(y) then z = z*x; y = y div 2; // Ganzzahldivision x = x*x;}

1. Was ist die Nachbedingung dieses Algorithmus

2. Bestimmen die die Schleifeninvariante

3. Beweisen Sie die Korrektheit de Legendre Algorithmus