Selected Solutions for Chapter 5: Probabilistic Analysis and Randomized Algorithms 5-3
D
n
2
!
1
2
D
n.n 1/
2
1
2
D
n.n 1/
4
:
Thus the expected number of inverted pairs is n.n 1/=4.
Solution to Exercise 5.3-2
Although PERMUTE-WITHOUT-IDENTITY will not produce the identity permuta-
tion, there are other permutations that it fails to produce. For example, consider
its operation when n D 3, when it should be able to produce the nŠ 1 D 5 non-
identity permutations. The for loop iterates for i D 1 and i D 2. When i D 1,
the call to RANDOM returns one of two possible values (either 2 or 3), and when
i D 2, the call to RANDOM returns just one value (3). Thus, PERMUTE-WITHOUT-
IDENTITY can produce only 2 1 D 2 possible permutations, rather than the 5 that
are required.
Solution to Exercise 5.3-4
PERMUTE-BY-CYCLIC chooses offset as a random integer in the range 1
offset n, and then it performs a cyclic rotation of the array. That is,
BŒ..i C offset 1/ mod n/ C 1 D AŒi for i D 1; 2 ; : : : ; n. (The subtraction
and addition of 1 in the index calculation is due to the 1-origin indexing. If we
had used 0-origin indexing instead, the index calculation would have simplied to
BŒ.i C offset/ mod n D AŒi for i D 0; 1; : : : ; n 1.)
Thus, once offset is determined, so is the entire permutation. Since each value of
offset occurs with probability 1=n , each element AŒi has a probability of ending
up in position BŒj with probability 1=n.
This procedure does not produce a uniform random permutation, however, since
it can produce only n different permutations. Thus, n permutations occur with
probability 1=n, and the remaining nŠ n permutations occur with probability 0.