Upload
gannon
View
79
Download
0
Embed Size (px)
DESCRIPTION
CMSC 203 / 0201 Fall 2002. Week #7 – 7/9/11 October 2002 Prof. Marie desJardins. TOPICS. Recursion Recursive and iterative algorithms Program correctness. MON 10/7 RECURSION (3.3). Concepts/Vocabulary. Recursive (a.k.a. inductive) function definitions Recursively defined sets - PowerPoint PPT Presentation
Citation preview
September1999
CMSC 203 / 0201Fall 2002
Week #7 – 7/9/11 October 2002
Prof. Marie desJardins
September1999October 1999October 1999
TOPICS
Recursion Recursive and iterative algorithms Program correctness
September1999
MON 10/7RECURSION (3.3)
September1999October 1999October 1999
Concepts/Vocabulary
Recursive (a.k.a. inductive) function definitions Recursively defined sets Special sequences:
Factorial F(0)=1, F(n) = F(n-1)(n) = n! Fibonacci numbers f0 = 0, f1 = 1, fn = fn-1 + fn-2
Strings *: Strings over alphabet Empty string String length l(s) String concatenation
September1999October 1999October 1999
Examples
S1 = Even positive integers 2 S1; x+2 S1 if x S1
S2 = Even integers 2 S2; x+2 S2 if x S2; x-2 S2 if x S2
Prove that S1 is the set of all even positive integers Every even positive integer is in S1…
Every member of S1 is an even positive integer…
September1999October 1999October 1999
Examples II
Exercise 3.3.5: Give a recursive definition of the sequence {an}, n = 1, 2, 3, … if (a) an = 6n (b) an = 2n + 1 (c) an = 10n
(d) an = 5 Exercise 3.3.31: When does a string belong to the
set A of bit strings defined recursively by 0x1 A if x A,
where is the empty string?
September1999October 1999October 1999
Examples III
Exercise 3.3.33: Use Exercise 29 [definition of w i] and mathematical induction to show that
l(wi) = i l(w),where w is a string and i is a nonnegative integer.
Exercise 3.3.34: Show that (wR)I = (wi)R whenever w is a string and I is a nonnegative integer; that is, show that the ith power of the reversal of a string is the reversal of the ith power of the string.
September1999
WED 10/9RECURSIVE ALGORITHMS (3.4)
** HOMEWORK #4 DUE **
** UNGRADED QUIZ TODAY **
September1999October 1999October 1999
Concepts / Vocabulary
Recursive algorithm Iterative algorithm
September1999October 1999October 1999
Examples
Algorithm 7: Recursive Fibonacci Complexity of f7 (Exercise 14), fn
Algorithm 8: Iterative Fibonacci Complexity f7 (Exercise 14), fn
Eercise 3.4.23: Give a recursive algorithm for finding the reversal of a bit string.
September1999
FRI 10/11PROGRAM CORRECTNESS (3.5)
September1999October 1999October 1999
Concepts / Vocabulary
Initial assertion, final assertion Correctness, partial correctness, termination
“Partially correct with respect to initial assertion p and final assertion q”
Rules of inference Composition rule Conditional rules Loop invariants
September1999October 1999October 1999
Examples
Exercise 3.5.3: Verify that the program segmentx := 2z := x + yif y > 0 then
z := z + 1else
z := 0is correct with respect to the initial assertion y=3 and the final assertion z=6.
September1999October 1999October 1999
Examples II
Exercise 3.5.6: Use the rule of inference developed in Exercise 5 [if… else if … else …] to verify that the program
if x < 0 theny := -2|x| / x
else if x > 0 theny := 2|x| / x
else if x = 0 theny := 2
is correct with respect to the initial assertion T and the final assertion y=2.