• Keine Ergebnisse gefunden

9.1 Größer gemeinsamer Teiler

N/A
N/A
Protected

Academic year: 2022

Aktie "9.1 Größer gemeinsamer Teiler"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe 19

9. Übungsblatt

Ausgabe: 19.06.18 Abgabe: 19.06.18

9.1 Größer gemeinsamer Teiler

Eine Zahla∈Zteilt eine Zahlb∈Z, geschriebena|b, genau dann wenn es einr∈Zgibt so dassr·a=b.

Gegeben zwei Zahlen x,y ∈ Z, dann ist dergrößte gemeinsame Teilervon xundy, geschrieben gcd(x,y), die Zahlz∈Z, so dasszsowohlxals auchyteilt und für jede Zahlu∈Z, diexundyteilt, gilt, dassu≤z.

Für den größten gemeinsamen Teiler gelten folgende Gleichungen:

gcd(a,a) =a (1)

0<a, 0<b,a≤b=⇒gcd(a,b) =gcd(b−a,a) (2) 0<a, 0<b,b≤a=⇒gcd(a,b) =gcd(b,a−b) (3)

gcd(a,b) =gcd(b,a) (4)

Folgendes C0-Programm soll den größten gemeinsamen Teiler berechnen:

1 i n t ggt (i n t a , i n t b ) 2 /∗∗ pre ?

3 p o s t ? 4 ∗/

5 {

6 while ( 1 ) /∗∗ inv ? ∗/ {

7 i f ( a == b ) {

8 r e t u r n a ;

9 }

10 e l s e

11 { }

12 /∗∗ { ? } ∗/

13 i f ( a <= b ) {

14 b= b− a ;

15 }

16 e l s e {

17 a= a−b ;

18 }

19 }

20 }

(i) Formalisieren Sie die Korrektheit, indem Sie die Vorbedingung ggf. ergänzen und eine Nachbedingung formulieren.

(ii) Finden Sie eine Invariante.

(iii) Beweisen Sie die Korrektheit, indem Sie die Verifikationsbedingungen mit der schwächste Vorbedingung berechnen.

Hinweise:

1. In Zeile 12 können Sie gegenfalls eine Zusicherung einfügen, die den Beweis vereinfacht.

2. Die Invariante ist denkbar einfach: der größte gemeinsame Teiler vonaundbbleibt immer gleich.

— Seite 1 von 1 —

Referenzen

ÄHNLICHE DOKUMENTE

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe 198. Spezifieren Sie ein Prädikat perm ( a, n, b, m ) , welches wahr

Korrekte Software: Grundlagen und Methoden Vorlesung 11 vom 19.06.18: Funktionen und Prozeduren. Serge Autexier, Christoph Lüth Universität Bremen

Partial cor- rectness means that if the programs starts in a state where the precondition P holds, and it terminates, then it does so in a state which satisfies the postcondition

Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

Serge Autexier Christoph Lüth Korrekte Software: Grundlagen und Methoden SoSe

Korrekte Software: Grundlagen und Methoden Vorlesung 1 vom 06.04.17: Einführung.. Serge Autexier, Christoph Lüth Universität Bremen