Download presentation
Presentation is loading. Please wait.
1
Lecture 13 3.4 Recursive Definitions
2
Fractals fractals are examples of images where the same elements is being recursively.
3
Recursive Functions. How do we formalize this idea of a recursive function: We use the set of nonnegative integers N: Basic Step: Specify the value of the function at n=0: f(0). Recursive Step: Given the values of f(k), k <= n, give a rule for producing the the value of f(n+1). Example: f(0) = 3 f(n+1) = 2f(n) + 3 f(1) = 2x3 + 3 = 9 f(2) = 2x9 + 3 = 21 Example: Recursive definition of n! : f(0) = 1 f(n+1) = f(n) x (n+1)
4
Fibonacci Numbers Fibonacci numbers: f(0) = 0, f(1) = 1, f(n+1) = f(n) + f(n-1) for n = 1,2,3,... f(2) = 1 + 0 = 1; f(3) = 1 + 1 = 2; f(4) = 2 + 1 = 3; f(5) = 3 + 2 = 5; Suppose a newly-born pair of rabbits, one male, one female, are put in a field. Rabbits are able to mate at the age of one month so that at the end of its second month a female can produce another pair of rabbits. Suppose that our rabbits never die and that the female always produces one new pair (one male, one female) every month from the second month on. The puzzle that Fibonacci posed was... How many pairs do we have after one year?
5
More on Fibonacci
6
More Fibonacci The left and right going spirals are neighboring Fibonacci numbers!
7
Golden Section x y
8
Recursively defined sets (Lame’s theorem will not be required material) Exactly the same idea: Basis Step: define a basis set (e.g. the empty set). Recursive Step :Define a rule to produce new elements from already existing elements. Example: Basis Step: 3 is in S. Recursive Step: if x is in S and y is in S then x+y is in S. 3 3+3=6 3+6 = 9 & 6+6=12...
9
Recursively defined sets Strings: S = set of strings A = alphabet Basic step: empty string is in S Recursive step: if w is in S and x in A wx is in S Example: binary strings: A={0,1} 1) empty string 2) 0 & 1 3) 00 & 01 & 10 & 11 4)...
10
Recursive Definitions Definition 3 & examples 9,10,11,13,14,15 & Generalized Induction are not required. Rooted Trees: A rooted tree has vertices, a distinguished vertex called the root and edges which connect the vertices. Basic Step: A single vertex is a rooted tree. Recursive Step: Suppose T1,...,Tn,... are rooted trees with roots r1,....rn,... If we start with a new root r and connect this root to any of the existing roots r1,...rn,... with a new edge, we construct a new rooted tree. basis step: Step 1:... Step 2: already exists etc. Trees are often very important data-structures for instance to search and sort data.
11
Binary Trees Extended Binary Trees: Basic Step: the empty set is a binary tree. Recursive Step: If T1 and T2 are extended binary trees, then the following tree T1.T2 is also an extended binary tree: pick a new root node and attach T1 with an edge as a left sub-tree and attach T2 as a right sub-tree. Step 1: Step 2: Step 3: e.g.
12
Binary Trees Full binary Trees: Only difference in the Basic Step: Basic Step: A single vertex is a full binary tree. Recursive Step: As in extended binary trees. The result is that you cannot attach the empty set on the left or the right. BASIC: Step 1: Full binary trees have only 0 or 2 child-nodes.
13
Some Defs. h(T) is the height of a full binary tree: Recursive Definition: Basic Step: The height of a tree consisting of a single root node is h(T)=0. Recursive Step: If T1 and T2 are full binary trees, then the full binary tree T = T1.T2 has height h(T) = 1+max(h(T1),h(T2)). n(T) is the number of vertices in the tree. Recursive definition: Basic Step: The number of vertices of a tree consisting of a single root node is: n(T) = 1; Recursive Step: If T1 and T2 are full binary trees, then the number of vertices of the tree T1.T2 is n(T) = 1+n(T1)+n(T2).
14
Huffman Coding Imagine we like to send data from A to B. For instance we could want to send strings of letters (i.e. words). How do we code letters into bits? Important property: we want short codes for frequent words and we need long codes for infrequent words: much more efficient (shortest expected code length). Important constraint: prefix property: we do not want that the first k bits of a codeword code for another word. This would require separator symbols. Huffman produced a simple scheme using extended binary trees that provides just that. Important application: Data compression (imagine you need to pay a buck for every 0 or 1 you send over the channel).
15
Recursive Construction Basic Step: every symbol is a tree with one vertex. Recursive Step: Take the two trees with smallest frequencies and merge them into a single bigger tree. New root represent total frequency. most freq. letter has short code b=0 e=10 c=110 d=1110 a=1111
16
Huffman Tree for Alphabet MAX=10100000011000101
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.