Professional Documents
Culture Documents
I i
i
A
e
= {a / a e A
i
for all i e I}, and
I i
i
A
e
= {a / a e A
i
for some i e I}.
A collection {A
i
}
ie I
of sets is said to be mutually disjoint if
A
i
A
j
= | for all i e I, j e I such that i = j.
1.2.14 Examples
i) If X = {a, b} and Y = {x, y}, then
X Y = {(a, x), (a, y), (b, x), (b, y)} and Y X = {(x, a) (x, b), (y, a),
(y, b)}.
Note that X Y = Y X.
ii) If A = {a, b}, B = {2}, C = {x}, then A B C = {(a, 2, x), (b, 2, x))}.
iii) Let T = {a, b, c, d} and S = {1, 2, 4}. Then the (S T) (T S) is an
empty set.
iv) Write A
i
= {i, i+1, i+2, } for each i e N, the set of natural numbers.
Then it is easy to observe that
N i
i
A
e
= N and
I i
i
A
e
= |.
v) If B
i
= {2i, 2i +1} for all i e N, then {B
i
}
ieN
is a collection of mutually
disjoint sets.
1.2.15 Definition
Let A be a set. The set P(A) = the set of all subsets of A, is called the power
set of A.
Result: If the set A has n elements, then the number of elements in P(A) is
2
n
.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 7
Proof: Suppose A has n elements. Let m be an integer such that 0 s m s n.
We can select m elements from the given set A in
n
C
m
ways. So A contains
n
C
m
distinct subsets containing m elements. Therefore,
the number of elements in P(A)
= number of subsets containing 0 number of elements
+ number of subsets containing only 1 element
+ + number of subsets containing n elements
=
n
C
0
+
n
C
1
+
n
C
2
+ +
n
C
n
= 2
n
.
Self Assessment Questions
1. Let A = {a, b} and B = {x, y, z}. Then find A B, B A.
2. Let S = {2, 5, 2 , 25, t,
2
5
} and T = {4, 25, 2 , 6,
2
3
}
i) Find S T, S T and T (S T)
ii) Find Z S, Z S, Z T and Z T.
3. Find A
c
(with respect to the universal set of real numbers) in the
following cases
i) A
1
= (1, ) (-, -2)
ii) A
2
= (-3, ) (-, 5).
4. Let x and y be real numbers with x < y. Find (x, y)
c
, [x, y)
c
, (x, )
c
, and
(-, y]
c
.
5. Let S = {x, y, z, {x, y}}. Find (i) S \ {x, y}; (ii) S \ |; (iii) ({x, y, z} {S})
\ S; and (iv) S \ {{x, y}}.
6. Find the power set of S = {(x, y), Z }.
1.3 Functions and Relations
Relation describes connections between different elements of the same set,
where as functions describe connections between two different sets.
Functions give a mathematical precise framework for the intuitive idea of
transformation.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 8
1.3.1 Definitions
Let S and T be sets. A function f from S to T is a subset f of S T such that
i) for s e S, there exists t e T with (s, t) e f;
ii) (s, u) e f and (s, t) e f t = u.
If (s, t) e f, then we write (s, f(s)) or f(s) = t.
Here t is called the image of s; and s is called the preimage of t.
The set S is called the domain of f and T is called the codomain.
The set {f(s) / s e S } is a subset of T and it is called the image of S under f
(or image of f). We denote the fact f is a function from S toT by f : S T.
f: S T is said to be
1.3.2 One-one function (or injective function)
f(s
1
) = f(s
2
) s
1
= s
2
.
onto function (or surjective function): t e T there exists an element
s e S such that f(s) = t.
1.3.3 Bijection
if it is both one-one and onto.
Let g: S T and f : T U. The composition of f and g is a function
fog: S U defined by (fog)(s) = f(g(s)) for all s in S.
1.3.4 Definitions
A function f : S T is said to have an inverse if there exists a function g
from T to S such that (gof)(s) = s for all s in S and (fog)(t) = t for all t
in T. We call the function g the inverse of f. A function f : S S is said
to be an identity function if f(s) = s for all s in S. The identity function on S is
denoted by either I or I
S
. Inverse of a function f, if it exists, is denoted by f
-1
.
Two functions f : A B and g : C D are said to be equal if A = C,
B = D and f(a) = g(a) for all elements a in A = C. If two functions f
and g are equal, then we write f = g. The identity function is one-one
and onto. A function g is inverse of f fog and gof are identity functions. A
function f has an inverse f is one-one and onto.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 9
1.3.5 Example
Let the functions f and g defined by f(x) = 2x and g(x) = x + 5 for all x in R
(the set of real numbers). Then (fog)(1) = f(g(1)) = f(1 + 5) = f(6) = 12 and
(gof)(1) = g(f(1)) = g(2) = 2 + 5 = 7. This shows that the two functions are
not equal at 1 and so fog = gof.
1.3.6 Definition
Let A be a subset of the Universal set U = {x
1
, x
2
, , x
n
}. The characteristic
function of A is defined as a function from U to {0, 1} by the following:
f
A
(x
i
) =
i
i
1 if x A
0 if x A
e
I i
i
S
e
= S and S
i
S
j
= | if i = j.
1.4.9 Example
i) Write A = {1, 2, 3, 4, 5, a, b, c}, S
1
= {1, 2}, S
2
= {3}, S
3
= {4, 5, a} and
S
4
= {b, c}. Then S
1
, S
2
, S
3
, S
4
form a partition for A.
ii) Consider R, the set of all real numbers. The collection
{(a, b) / a, b e Z and b = a + 1} of subsets of R, forms a partition for R.
1.4.10 Lemma
If R is an equivalence relation on a set S and a, b e S, then either
[a] = [b] or [a] [b] = |.
Proof: If [a] [b] = |, then it is clear.
Now suppose the intersection is non-empty.
Let x e [a] [b]
x e [a] and x e [b]
x ~ a and x ~ b
a ~ x and x ~ b (since ~ is symmetric)
a ~ b (since ~ is transitive).
Now we show that [a] = [b]. For this, let y e [a] y ~ a.
Since a ~ b, we get y ~ b (by transitive property) b ~ y y e [b].
Hence [a] _ [b]. Similarly, we get that [b] _ [a]. Therefore [a] = [b].
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 13
From this lemma, we can conclude that any two equivalence classes are
either equal or disjoint.
1.4.11 Problem
Let A be a set and ~ an equivalence relation on A. Then the set of all
equivalence classes forms a partition for A.
Solution:
The collection of all equivalence classes is {[a] / a e A}.
Since each [a] _ A, we have that
A a
] a [
e
_ A.
Now let x e A. It is clear that x e [x] _
A a
] a [
e
.
Therefore we have that
A =
A a
] a [
e
.
By the lemma 1.4.11, we know that either [a] = [b] or [a] [b] = | for any
a, b e A.
Hence the set of all equivalence classes forms a partition.
Observation: Let A be a set and { A
i
/ i e I} be a collection of nonempty
subsets of A, which forms a partition for A. Then there exists an equivalence
relation ~ on A such that the equivalence classes are nothing but the sets of
the partition.
Self Assessment Questions
8. Whether R = {(1, 1), (1, 2), (3, 2), (3, 3), (2, 3), (2, 1)} is an equivalence
relation on S = {1, 2, 3}?
9. For x, y e R \{0}, define x ~ y
y
x
e Q. Whether or not, ~ is an
equivalence relation.
10. Let A = {x e Z
+
/ 1 s x s 10}. State whether or not each of the following
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 14
families of sets is a partition of A.
i) {{1, 3, 5}, {4, 7, 9}, {2, 6, 10}}; (ii) {{1, 3, 5, 7}, {2, 4, 6}, {3, 8, 9,
10}};
ii) {{1, 2, 3}, {5, 8, 9}, {4, 6, 7, 10}}.
11. If |S| = n, then how many relations are there from S to S.
12. Give an example of a relation that is both symmetric and anti
symmetric.
13. Let S = Z \ {0} and define R on S by (a, b) R (c, d) ad = bc. Is R
an equivalence relation? If so find the equivalence class containing
(1, 2).
1.5 Recursive Functions
Recursion is the technique of defining a function, a set or an algorithm in
terms of itself. That is, the definition will be in terms of previous values.
1.5.1 Definition
A function f: N N, where N is the set of non-negative integers is defined
recursively if the value of f at 0 is given and for each positive integer n, the
value of f at n is defined in terms of the values of f at k, where 0 k < n.
Observation: f defined (above) may not be a function. Hence, when a
function is defined recursively it is necessary to verify that the function is
well defined.
1.5.2 Example
The sequence 1, 4, 16, 64, ... , can be defined explicitly by the formula
f(n) = 4
n
for all integers n > 0.
The same function can also be defined recursively as follows:
f(0) = 1, f(n + 1) = 4f(n), for n > 0
To prove that the function is well defined we have to prove existence and
uniqueness of such function. In this case, existence is clear as f(n) = 4
n
.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 15
1.5.3 Theorem: (Recursion Theorem):
Let F is a given function from a set S into S. Let s
0
be fixed element of S.
Then there exists a unique function f: N N where N is the set of non-
negative integers satisfying
i) f(0) = s
0
ii) f(n + 1) = F(f(n)) for all integers n e N.
(Here the condition (i) is called initial condition and (ii) is called the
recurrence relation).
1.5.4 Example
Define n! recursively and compute 5! recursively.
Solution: We have f: N N. Then
i) f(0) = 1
ii) f(n + 1) = (n + 1)f(n) for all n > 0.
Clearly f(n) = n!.
Now we compute 5! recursively as follows:
5! = 5. 4!
= 5. 4. 3!
= 5. 4. 3. 2!
= 5. 4. 3. 2. 1!
= 5. 4. 3. 2. 1. 0!
= 5. 4. 3. 2. 1. 1
= 120.
1.5.5 Note
Any sequence in arithmetic progression or geometric progression can be
defined recursively. Consider the sequence a, a + d, a + 2d, . Then
A(0) = a, A(n + 1) = A(n) + d.
Consider another sequence a, ar, ar
2
, . Then
G(0) = a, G(n +1) = r G(n).
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 16
1.5.6 Definition
The Fibonacci sequence can be defined recursively as
i) F
0
= 1 = F
1
ii) F
n+1
= F
n
+ F
n-1
for n > 1.
Then
F
2
= F
1
+ F
0
= 2
F
3
= F
2
+ F
1
= 3
F
4
= F
3
+ F
2
= 5
..
Here, there are two initial conditions.
1.5.7 Example:
Define
f(x) =
when x is even
2
1
when x is odd
2
x
x
Solution: Define f: N N such that f(0) = 0 and f(x + 1) = x f(x).
Then f(6) = 5 f(5) = 5 [4 f(4)]
= 5 4 + [3 (3)]
= 5 4 + 3 2 + [1 f(1)]
= 5 4 + 3 2 +1 [0 f(0)]
= 3.
and f(5) = 4 f(4)
= 4 [3 - f(3)]
= 4 3 + 2 - [1-f(1)]
= f 3 + 2 -1 + [0 f(0)]
= 2.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 17
1.5.8 Example
Using recursion theorem, verify that the object defined by the recursive
definition is a function. That is.
i) g(0) = 1
ii) g(n + 1) = 3[g(n)]
2
+ 7 for all n > 0
Solution: We obtain
i) s
0
= 1
ii) f(k) = 3k
2
+ 7, where f: N N
Then g(0) = s
0
. And g(n +1) f(g(n)). Thus g is a well-defined function.
The following is an example of a recursive function that does not define a
function.
1.5.9 Example
Consider a recursion function g: Z
+
(the set of positive integers) Z (the set
of integers), for all integers n > 1.
Solution: Suppose g is a function. Then by definition of g,
g(1) = 1
g(2) = 1 + g(1) = 1 + 1 = 2.
g(3) = g(8) = 1 + g(4) = 1 + (1 + g(2)) = 1 + (1 + 2) = 4.
g(4) = 1 + g(2) = 1 + 2 = 3.
Now, g(5) = g(14) = 1 = g(7) = 1 + g(20)
= 1 + (1 + g(10))
= 1 + 1(1 + (1 + g(5)))
= 3 + g(5).
Subtracting g(5) we get 0 = 3. Therefore g is not well defined.
1.5.10 Definition
If m and n are two non-negative integers then the (greatest common divisor)
g.c.d. (m, n) is defined as the largest positive integer d such that d divides
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 18
both m and n. Euclidean algorithm computes the greatest common divisor
(g.c.d.) of two non-negative integers.
We can find g.c.d. (m, n) recursively as follows:
g.c.d. (n, m) if n > m
. . . (m, n) = m if n = 0
g.c.d. (n, mod (m, n)) Otherwise
g c d
where mod (m, n) is the remainder obtained when m is divided by n.
Observations:
- The first part interchanges the order of m and n if n > m.
- Second part is the initial condition.
- Third part is the recursive part mod (m, n) will become 0 in a finite
number of steps.
1.5.11 The recursive functions of more than one variable
i) Define f(x, y) = x + y recursively.
Here, we keep x fixed and use recursion on y. We define
i) f(x, 0) = x
ii) f(x, y + 1) = f(x, y) + 1.
Take x = 2, y = 3. Now f(2, 3) = f(2, 2) + 1
= f(2, 1) + 1 + 1
= f(2, 0) + 1 + 1 +1
= 2 + 1 + 1 +1
= 5.
ii) Define g(x, 0) = 0, g(x, y + 1) = g(x, y) + x. Take x = 3, y = 4. Then
g(3, 4) = g(3, 3) + 3
= g(3, 2) + 3 + 3
= g(3, 1) + 3 + 3 + 3
= g(3, 0) + 3 + 3 + 3 + 3 = 12 (since g(3, 0) = 0).
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 19
Self Assessment Questions
14. The g.c.d. (20, 6) of _______
15. The g.c.d. (81, 36) of ________
16. The g.c.d. (22, 8) of _______
1.6 Strings and Growth Functions
Let us see the simple example, to understand this.
Bhanu is running a successful business and is planning a short vacation trip.
She is planning to take a cell phone with her so that in the case of an
emergency, the manager at work can reach her. To budget her calls, we
looks at various plans and chooses the pan that charges US $ 1.00 for the
connection charge and US $ 10 for each minute. For example, the charges
for a one minute call are US $ 1.10, the charges for a two minute call are US
$ 1.20 and so on. So Bhanu makes the following table for the first ten
minutes of telephone charges.
Min 1 2 3 4 5 6 7 8 9 10
Charges 1.10 1.20 1.30 1.40 1.50 1.60 1.70 1.80 1.90 2.00
From the table we see that for a 30 min call, the charges are 1.00 + 30(0.10)
= 4.00.
In general, for an n-minute call, the charges are
1.00 + n(0.10) = 1.00 + 0.10 n.
Let us list the telephone charges as follows.
1.10, 1.20, 1.30, , (1.00 + 0.1 n),
This is an ordered list of real numbers in which the first element is 1.10, the
second element is 1.20, and so on. Such an ordered list of elements is
called a sequence. If the sequence stops after n elements for some positive
integer n, then it is called finite otherwise it is called infinite sequence.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 20
Define a function f: N (natural numbers) R (real numbers) as f(n) = 1.00 +
(0.1)n.
Then f(1) = 1.00 + (0.1)1 = 1.10 = c
1
f(2) = 1.00 + (0.1)2 = 1.20 = c
2
f(n) = 1.00 + (0.1)n = c
n
.
1.6.1 Definition
An infinite sequence or a sequence, on a non empty set X is a function from
the set of positive integers N to X. A sequence whose terms are integers is
called an integer sequence.
1.6.2 Example
Let f: N Z be a function defined by f(n) = n
2
. Then f(1) = 1, f(2) = 2
2
= 4,
and so we get a sequence 1, 4, 9, , n
2
, is a sequence on A. Let a
n
denote the n
th
term of this sequence. Then a
1
= 1, a
2
= 4, , and so on. We
denote this sequence by
=1
2
} {
n
n or simply by {n
2
}.
1.6.3 Definition
Let
=1 n n
} a { be a sequence. Consider the following terms of this sequence:
a
m
, a
m+1
, , a
n
.
Some of the common things we do with these terms are adding them and
multiplying them. Let us first consider the addition.
The sum of the terms a
m
, a
m+1
, , a
n
is written as
=
n
m i
i
a . There is nothing about the choice of the variable i. We could choose
j or k as the index of the summation and write as the sum as
=
n
m j
j
a
or
=
n
m k
k
a .
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 21
1.6.4 Example
i)
=
4
1 i
i = 1 + 2 + 3 + 4 = 10.
ii)
=
+
3
1 i
1 i
i
= + 2/3 + = 23/12.
1.6.5 Example
Consider the sums
=
+
3
1
) 1 (
i
i and
=
4
2 i
j
=
+
3
1 i
) 1 i ( = (1+1) + (2 + 1) + (3 +1) = 9.
=
4
2 i
j = 2 + 3 + 4 = 9.
Therefore
=
+
3
1 i
) 1 i ( =
=
4
2 i
j
1.6.6 Note
To change the index variable in a sum we do the following.
1. Calculate the lower limit of the new index variable.
2. Calculate the upper limit of the new index variable.
3. Find the general term of the summation in terms of the new index
variable.
1.6.7 Example
Consider the sum
=
+
3
1 i
) 1 i ( and change the index variable to j = i + 1.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 22
Solution: Step (i): Lower limit for j: The lower limit for i is 1, so the lower
limit for j is j = i + 1 = 1 + 1 = 2.
Step (ii): Upper limit for j: The upper limit for i is 3, so the upper limit for j is j
= i + 1 = 3 + 1 = 4.
Step (iii): The general term is i + 1 = j.
Hence, the equivalent sum is
=
4
2 j
j .
1.6.8 Example
Consider the sum
=
+ +
1 n
0 i
2
) i 1 n ( , change the index variable to j = i + 1.
Solution:
Step (i): Lower limit for j = i + 1 = 0 + 1 = 1.
Step (ii): Upper limit for j = i + 1 = n 1 + 1 = n.
Step (iii): The general term for the new summation is given by
n
2
+ 1 + i = n
2
+ j.
Hence, the new sum is
=
+
n
1 j
2
) j n ( .
1.6.9 Properties of Summation
Let
=1 n n
} a { and
=1 n n
} b { be sequences of real numbers and let c be a real
number. Suppose m and n are integers such that 1 m n. Then
(i)
=
n
m i
i
a +
=
n
m i
i
b = ) b a (
n
m i
i i
=
+ ,
(ii) c.
=
n
m i
i
a =
=
n
m i
i
ca .
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 23
1.6.10 Definition
Let A be a nonempty finite set. A string or word, over A is a finite sequence
of elements from A. The set A is called an alphabet.
A string with no element in it is called the empty string or empty word.
If s
1
and s
2
are two strings over a set A, then the concatenation of s
1
and s
2
is the string s
1
s
2
. That is, to obtain the concatenation of s
1
and s
2
we list the
elements of s
1
followed by the elements of s
2
.
1.6.11 Example
Suppose s
1
= abbabcdb and s
2
= caabcdbbd are two strings over the set
A = {a, b, c, d}. Then the concatenation of s
1
and s
2
is s
1
s
2
= abbabcdbcaabcdbbd.
It follows that if s
1
and s
2
are strings over a set A, then s
1
s
2
= s
1
+ s
2
.
1.6.12 Example
Let A = {0, 1}.
i) Let s = 01101010. Then s is a string over A and s = 8.
ii) 00, 01, 10, 11 are only strings of length 2 over A.
iii) If s
1
= 1001010 and s
2
= 00111 then s
1
s
2
= 100101000111. Also s
1
=
7, s
2
= 5, and s
1
s
2
= 12 = s
1
+ s
2
.
1.6.13 Growth Functions
The growth of a function is often described using a special notation,
O-notation (read as big-oh notation). It provides a special way to compare
relative sizes of functions that is very useful in the analysis of computer
algorithms. It often happens that the time or memory space requirements
for the algorithms available to do a certain job differ from each other on such
a grand scale that differences of just a constant factor are completely
overshadowed. The O-notation makes use of approximations that highlight
these large-scale differences while ignoring differences of a constant factor
and differences that only occur for small sets of input data.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 24
1.6.14 Definition
Let f and g be functions from the set of integers or the set of real numbers to
the set of real numbers. Then f of order g written as f(x) is O(g(x)), if there
are constants C and k such that f(x) C g(x) whenever x > k (this is read
as f(x) is big-oh of g(x)).
1.6.15 Remark
To show f(x) is O(g(x)), we need only find one pair of constants C and k
such that f(x) < C(g(x)) if x > k. However, a pair C, k that satisfies the
definition is not unique. Moreover, if one such pair exists, there are infinitely
many such pairs. A simple way to see this is to note that if C, k is one such
pair, any pair C
1
, k
1
with C < C
1
and k < k
1
also satisfies the definition, since
f (x) < C
1
g(x) whenever x > k
1
> k.
1.6.16 Example
Use O-notation to express 3x
3
+ 2x + 7 12 x
3
, for all real numbers
x > 1.
Solution: Take C = 12 and k = 1, the given statement translates to
2x
3
+ 2x + 7 is O(x
3
).
1.6.17 Note: Order of Polynomial functions
i) If 1 < x then x < x
2
and so x
2
< x
3
. Thus, if 1 < x, then 1 < x < x
2
< x
3
.
ii) For any rational numbers r and s, if x > 1 and r < s, then x
r
< x
s
.
Therefore x
s
is O(x
s
).
1.6.18 Example
Show that for any real number x > 1, 2x
4
+ 4x
3
+ 5 11x
4
.
Solution: Since x is a real number and x > 1, we have
x
3
< x
4
and 1 < x
4
. So
4x
3
< 4x
4
and 5 < 5x
4
.
Adding we obtain, 2x
4
+ 4x
3
+ 5 2x
4
+ 4x
4
+ 5x
4
= 11x
4
.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 25
1.6.19 Example
Use the definition of order to show that 5x
3
3x + 4 is O(x
3
).
Solution
The functions f and g referred to in the definition of O-notation are defined
as follows.
For all real numbers x, f(x) = 5x
3
3x + 4 and g(x) = x
3
.
For all real numbers x > 1,
5x
3
3x + 4 5x
3
+ 3x + 4 (by the triangle inequality)
5x
3
+ 3x + 4
5x
3
+ 3x
3
+ 4x
3
12x
3
12 x
3
.
Therefore, f(x) 12 g(x) for all x > 1
Or f(x) C g(x) for all x > k where C = 12 and k = 1.
Hence, 5x
3
3x + 4 is O(x
3
).
1.6.20 Example
Show that 9x
2
is O(x
3
). Is it true that x
3
is O(9x
2
)?
Solution: We note that 9x
2
< x
3
is true whenever x > 9 (by dividing both
sides by x
2
). Hence, 9x
2
is O(x
3
), taking C = 1 and k = 9 in the definition of
big-oh notation.
To determine whether x
3
is O(9x
2
) or not , it is necessary to determine
whether there are constants C and k such that x
3
C (9x
2
) whenever x > k.
This is equivalent to the inequality x < 9C (we get this dividing both sides by x
2
).
No such x can exist since x can be marked arbitrarily large. Hence, x
3
is not
O(9x
2
).
Now we generalize above example, to show that any polynomial function is
big oh of the power function of its highest order term or of any larger power
function.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 26
1.6.21 Theorem
Let f(x) = a
n
x
n
+ a
n-1
x
n-1
+ + a
1
x + a
0
where a
0
, a
1
, , a
n-1
, a
n
are real
numbers then f(x) is O(x
n
).
Proof: Using the triangle inequality, if x > 1, we have that
f(x) = a
n
x
n
+ a
n-1
x
n-1
+ + a
1
x + a
0
a
n
x
n
+ a
n-1
x
n-1
+ + a
1
x + a
0
x
n
(
a
n
+ a
n-1
/ x + + a
1
/ x
n-1
+ a
0
/x
n
)
x
n
(
a
n
+ a
n-1
+ + a
1
+ a
0
) (since x > 1).
This shows that
f(x) C x
n
where
C =
a
n
+ a
n-1
+ + a
1
+ a
0
, whenever x > 1.
Hence, f(x) is O(x
n
).
1.6.22 Example
Use big-oh notation to estimate the sum of the first n positive integers?
Solution: Each positive integer n is greater than every positive integer that
precedes it. Therefore, for each positive integer n,
1 + 2 + 3 + + n
times n
n n n
+ + + ... = n n = n
2
.
Therefore, 1 + 2 + 3 + + n is O(n
2
).
Observation: big O-estimates will be developed for the factorial function
and its logarithm. These estimates will be important in the analysis of the
number of steps used in sorting procedures.
1.6.23 Example
Give big-O estimates for the factorial function and the logarithm of the
factorial function, where the factorial function f(n) = n ! = 1 2 3 n
where n is a positive integer, and 0 ! = 1.
For example, 1! = 1, 2! = 2, 3! = 6, 4! = 24.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 27
Note that the function n! grows rapidly.
20 ! = 2, 432, 902, 008, 176, 640, 000.
Solution: A big-O estimate for n ! can be obtained by noting that each term
in the product does not exceed n. Hence,
n ! = 1 2 n n n n = n
n
.
This inequality shows that n ! is O(n
n
), taking C = 1 and k = 1.
Taking logarithm both sides, we get
log n! log n
n
= n log n.
This shows that log n! is O(n log n), again taking C = 1 and k =1.
1.6.24 Theorem
- Suppose that f
1
(x) is O(g
1
(x)) and f
2
(x) is O(g
2
(x)). Then (f
1
+ f
2
) (x) is
O(max (g
1
(x), g
2
(x))).
- Suppose that f
1
(x) and f
2
(x) are both O(g(x)). Then (f
1
+ f
2
)(x) is O(g(x)).
- Suppose that f
1
(x) is O(g
1
(x)) and f
2
(x) is O(g
2
(x)). Then (f
1
f
2
)(x) is
O(max (g
1
(x)g
2
(x)).
1.6.25 Example
Give a big O-estimate for f(n) = 3n log(n!) + (n
2
+ 3) log n, where n is a
positive integer.
Solution: First we estimate the product 3n log (n!). From the example, we
log n! is O(n log n). Also 3n is O(n).
Using these two estimates, and the theorem, we can estimate that 3n log (n!) is
O(n
2
log n).
Next the product (n
2
+ 3) log n will be estimated.
(n
2
+ 3) 2n
2
when n > 2, it follows that n
2
+ 3 is O(n
2
).
Therefore (n
2
+3)log n is O(n
2
log n). Using theorem, to combine the two
big O-estimates for the products shows that
f(n) = 3nlog (n!) + (n
2
+ 3)log n is O(n
2
log n).
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 28
1.6.26 Example
Give a big O estimate for f(x) = (x + 1)log(x
2
+ 1) + 3x
2
.
Solution: A big-O estimate for (x + 1) is O(x).
When x > 1, x
2
+ 1 2x
2
. Therefore,
log (x
2
+ 1)
log(2x
2
)
= log 2 + log x
2
= log 2 + 2 log x
3 log x, if x > 2.
Therefore
log(x
2
+ 1) is O(log x).
By theorem, it follows that (x + 1)log(x
2
+ 1) is O(x logx).
Further, 3x
2
is O(x
2
), by theorem, f(x) is O(max (x logx, x
2
)).
Since x log x x
2
, for x > 1, it follows that f(x) is O(x
2
).
1.6.27 Big-Omega and Big-Theta Notations
If f(x) is O(g(x)), all that one can conclude that except for constants and a
finite number of exceptions, f is bounded above by g, so g grows at least as
fast as f. For example, if f(x) = x and g(x) = 2x, then f(x) is O(g(x)), but g
grows considerable faster than f. The statement f(x) is O g(x) says nothing
about lower bound for f. For this, we use big-Omega notation. When we
want to give both upper and a lower bound on the size of a function f(x)
relative to a reference function g(x), we use big-Theta notation.
1.6.28 Definition
Let f and g be functions from the set of integers or the set of real numbers to
the set of real numbers. We say that f(x) is O(g(x)), if there are positive
constants C and k such that f(x) > C g(x) whenever x > k which is read
as f(x) is big-Omega g(x).
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 29
Let f and g be functions from the set of integers or the set of real numbers to
the set of real numbers. We say that f(x) is u g(x) if f(x) is O(g(x)) and f(x) is
Og(x). When f(x) is u g(x), we say that f is big-Theta of g(x) and we say
f(x) is of order g(x).
Therefore, f(x) is O(g(x)), then f(x) is an upper bound for f(x) and whenever
f(x) is g(x), g(x) is a lower bound for f(x). The big-O notation compares the
rate of growth of functions rather than their values, so when f(x) is u g(x), f(x)
and g(x) have the same rates of growth, but can be very different in their
values.
1.6.29 Example
Let f(x) = x and g(x) = 1, 000, 000x, then f(x) C g(x) for C = 1 and k = 1, so
that f(x) is O(g(x)). Also Cf(x) > g(x) for C = 1, 000, 000 and k = 1, so f(x) is
O(g(x)). Therefore f(x) is u g(x).
Self Assessment Questions
17. Use the definition of order to show that x
2
+ 2x + 1 is O(x
2
).
1.7 Summary
In this unit we introduced the basic concept sets and the different properties
of sets. Some properties common to operations on sets, cartesian product
of sets were studied as relations between two sets. We also discussed the
equivalence relations with a few illustrations. The reader can easily apply
the mathematical concepts introduced, in various situations. In the last
section we studied the strings and growth functions which are very useful in
time complexity of algorithms.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 30
1.8 Terminal Questions
1. Explain Equivalence relation and give examples.
2. Explain growth functions and give examples.
3. Define recursive function and give examples.
4. Explain Big Omega and Big theta functions.
1.9 Answers
Self Assessment Questions
1. A B = {(a, x), (a, y), (a, z), (b, x), (b, y), (b, z)}, and
B A = {(x, a), (x, b), (y, a), (y, b), (z, a), (z, b)}. This problem illustrates
that, in general, the sets A B and B A are different.
2. i) S T = { 2 , 25}, S T = {2, 5, 2 , 25, t,
2
5
, 4, 6,
2
3
},
T (S T) = {(4, 2 ), (4, 25), (25, 2 ), (25, 25), ( 2 , 2 ), ( 2 ,
25), (6, 2 ), (6, 25), (
2
3
, 2 ), (
2
3
, 25)}.
ii) Z S = { 2 , t,
2
5
, 0, 1, -1, 2, -2, . }, Z S = {2, 5, 25}
Z T = { 2 ,
2
3
, 0, 1, -1, 2, -2, .}, Z T = {4, 25, 6}.
3. i)
c
1
A = [-2, 1]; (ii).
c
2
A = (- , 3] [5, ).
4. (x, y)
c
= (-, x] [y, ); [x, y)
c
= (-, a) [y, ); (x, )
c
= (-, x]; and (-,
y]
c
= (y, )
5. (i) {z, {x, y}}, (ii). S (iii). {x, y, z}, and (iv).{x, y, z}.
6. P (S) = the power set of S = {|, S, {(a, b)}, {c}}.
7. i) Not reflexive as (2, 2) e R
1
.
Not symmetric as (3, 4) e R
1
but (4, 3) e R
1
Not anti symmetric as (1, 2), (2,1) e R
1
, but 1 = 2
Not transitive as (2, 1), (1, 2) e R
1
but (2, 2) e R
1
.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 31
ii) Reflexive: For any a e S
2
, a
2
> 0 and so (a, a) e R
2
Symmetric: If (a, b) e R
2
, then ab > 0, so ba > 0 and hence (b, a)e R
2
.
Not Anti symmetric: (5, 2) e R
2
, since 5(2) = 10 > 0 and similarly
(2, 5) e R
2
, but 5 = 2.
Not transitive: (5, 0) e R
2
, (0, -6) e R
2
but (5, -6) e R
2
, since
5(-6) />0.
iii) Reflexive:
Not symmetric: ((1, 2), (3, 4)) e R
3
, but ((3, 4), (1, 2)) e R, since
3 + 4 / s 1 + 2.
Not anti symmetric: ((1, 2), (0, 3)) e R
3
, ((0, 3), (1, 2)) e R
3
but
(1, 2) = (0, 3).
Transitive:
8. No: Since R is not reflexive as (2, 2) e R.
9. Yes
10. (i) No; (ii) No; (iii)Yes.
11. 2
n
.
12. The relation R defined by xRy x = y. That is., the identity relation,
is both symmetric as well as anti symmetric.
13. Yes. [(1, 2)] = {(1, 2), (-1, -2), (2, 4), (-2, -4), }.
14. g.c.d. (20, 6) = g.c.d. (6, mod (20, 6)) (since 20 = 6 3 + 2)
= g.c.d. (6, 2)
= (2, mod (6, 2))
= g.c.d. (2, 0)
= 2.
15. g.c.d. (81, 36) = g.c.d. (36, 9)
= g.c.d. (9, 0)
= 9.
Theory of Computer Science Unit 1
Sikkim Manipal University Page No.: 32
16. g.c.d. (22, 8) = g.c.d. (8, mod (22, 8))
= g.c.d. (8, 6)
= g.c.d. (6, mod (8, 6))
= g.c.d. (6, 2)
= g.c.d. (2, 0)
= 2.
17 The functions f and g referred to in the definition of O-notation are
defined as follows. For all real numbers x, f(x) = x
2
+ 2x
+ 1 and
g(x) = x
2
.
For all real numbers x > 1, x
2
+ 2x + 1 = x
2
+ 2x + 1
x
2
+ 2x
2
+ x
2
4x
2
4 x
2
.
Therefore,
f(x) 4 g(x) for all x > 1.
Or f(x) C g(x) for all x > k where C = 4 and k = 1.
Hence, x
2
+ 2x + 1 is O(x
2
).