140 likes | 371 Views
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
E N D
CMSC 203 / 0201Fall 2002 Week #7 – 7/9/11 October 2002 Prof. Marie desJardins
TOPICS • Recursion • Recursive and iterative algorithms • Program correctness
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
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…
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?
Examples III • Exercise 3.3.33: Use Exercise 29 [definition of wi] 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.
WED 10/9RECURSIVE ALGORITHMS (3.4) ** HOMEWORK #4 DUE ** ** UNGRADED QUIZ TODAY **
Concepts / Vocabulary • Recursive algorithm • Iterative algorithm
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.
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
Examples • Exercise 3.5.3: Verify that the program segment x := 2 z := x + y if y > 0 then z := z + 1 else z := 0is correct with respect to the initial assertion y=3 and the final assertion z=6.
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 then y := -2|x| / x else if x > 0 then y := 2|x| / x else if x = 0 then y := 2is correct with respect to the initial assertion T and the final assertion y=2.