pgcs2015
pgcs2015
This question paper has 5 printed sides. Part A has 10 questions of 3 marks each. Part B has
7 questions of 10 marks each. The total marks are 100. Answers to Part A must be filled in
the answer sheet provided.
Part A
1. Twin primes are pairs of numbers p and p+2 such that both are primes—for instance, 5
and 7, 11 and 13, 41 and 43. The Twin Prime Conjecture says that there are infinitely
many twin primes.
Let TwinPrime(n) be a predicate that is true if n and n+2 are twin primes. Which
of the following formulas, interpreted over positive integers, expresses that there are
only finitely many twin primes?
3. Suppose each edge of an undirected graph is coloured using one of three colours —
red, blue or green. Consider the following property of such graphs: if any vertex is
the endpoint of a red coloured edge, then it is either an endpoint of a blue coloured
edge or not an endpoint of any green coloured edge. If a graph G does not satisfy this
property, which of the following statements about G are valid?
1
4. A college prepares its timetable by grouping courses in slots A, B, C, . . . All courses in a
slot meet at the same time, and courses in different slots have disjoint timings. Course
registration has been completed and the administration now knows which students
are registered for each course. If the same student is registered for two courses, the
courses must be assigned different slots. The administration is trying to compute the
minimum number of slots required to prepare the timetable.
The administration decides to model this as a graph where the nodes are the courses
and edges represent pairs of courses with an overlapping audience. In this setting, the
graph theoretic question to be answered is:
5. An undirected graph has 10 vertices labelled {1, 2, . . . , 10} and 37 edges. Vertices
1, 3, 5, 7, 9 have degree 8 and vertices 2, 4, 6, 8 have degree 7. What is the degree of
vertex 10?
(a) 5 (b) 6 (c) 7 (d) 8
(a) If the best algorithm for B takes exponential time, there is no polynomial time
algorithm for A.
(b) If the best algorithm for A takes exponential time, there is no polynomial time
algorithm for B.
(c) If we have a polynomial time algorithm for A, we must also have a polynomial
time algorithm for B.
(d) If we don’t know whether there is a polynomial time algorithm for B, there cannot
be a polynomial time algorithm for A.
7. You arrive at a snack bar and you can’t decide whether to order a lime juice or a lassi.
You decide to throw a fair 6-sided die to make the choice, as follows.
2
8. How many times is the comparison i ≥ n performed in the following program?
10. The school athletics coach has to choose 4 students for the relay team. He calculates
that there are 3876 ways of choosing the team if the order in which the runners are
placed is not considered. How many ways are there of choosing the team if the order
of the runners is to be taken into account?
(a) Between 12,000 and 25,000 (b) Between 30,000 and 60,000
(c) Between 75,000 and 99,999 (d) More than 100,000
3
Part B
1. Let Σ = {a, b}. Given a language L ⊆ Σ∗ and a word w ∈ Σ∗ , define the languages:
Extend(L, w) := { xw | x ∈ L }
Shrink(L, w) := { x | xw ∈ L }
2. Consider a social network with n persons. Two persons A and B are said to be
connected if either they are friends or they are related through a sequence of friends:
that is, there exists a set of persons F1 , . . . , Fm such that A and F1 are friends, F1 and
F2 are friends, . . . , Fm−1 and Fm are friends, and finally Fm and B are friends.
It is known that there are k persons such that no pair among them is connected. What
is the maximum number of friendships possible?
3. A cook has a kitchen at the top of a hill, where she can prepare rotis. Each roti costs
one rupee to prepare. She can sell rotis for two rupees a piece at a stall down the hill.
Once she goes down the steep hill, she can not climb back in time make more rotis.
(a) Suppose the cook starts at the top with R rupees. What are all the possible
amounts of money she can have at the end?
(b) Suppose the cook can hitch a quick ride from her stall downhill back to the kitchen
uphill, by offering a paan to a truck driver. If she starts at the top with P paans
and 1 rupee, what is the minimum and maximum amount of money she can have
at the end?
5. An airline runs flights between several cities of the world. Every flight connects two
cities. A millionaire wants to travel from Chennai to Timbuktu by changing at most
k − 1 flights. Being a millionaire with plenty of time and money, he does not mind
revisiting the same city multiple times, or even taking the same flight multiple times
in his quest. Can you help the millionaire by describing how to compute the number
of ways he can make his journey? How many steps does your procedure take if there
are n cities and he can change flights at most k − 1 times. You can assume that the
procedure can add or multiply two numbers in a single operation.
4
6. Consider the code below, defining the functions f and g:
f(m, n) {
if (m == 0) return n;
else {
q = m div 10;
r = m mod 10;
return f(q, 10*n + r);
}
}
g(m, n) {
if (n == 0) return m;
else {
q = m div 10;
r = m mod 10;
return g(f(f(q, 0), r), n-1);
}
}
(a) Compute g(3, 7), g(345, 1), g(345, 4) and g(345, 0).
(b) What does g(m, n) compute, for nonnegative numbers m and n?
(c) How much time does it take to compute f (m, n) and g(m, n)?
7. There is a thin, long and hollow fibre with a virus in the centre. The virus occasionally
becomes active and secretes some side products. The fibre is so thin that new side
products secreted by the virus push the old products along the fibre towards its ends.
The possible actions of the virus are as follows
(a) Produce an acid molecule to its left and a base molecule to its right.
(b) Produce a base molecule to its left and an acid molecule to its right.
(c) Divide into two viruses, each of which continues to behave like its ancestor.
(d) Die.
You are given a sequence of acid and base molecules from one end of the fibre to the
other end. Design an algorithm to check if a single virus could possibly have produced
the given sequence. Use dynamic programming, checking smaller subsequences before
checking bigger subsequences.