Probability Interview Questions
Basic probability. Counting. Generating random numbers.
#basic-probability
Problem #1.1
How can you generate random numbers 1 to 7 with a single die?
Or more formally, you're given a random integer generator that outputs integers 1 2 3 4 5 6. Describe a procedure that uses this generator to generate a random number between 1 and 7.
Problem #1.2
You're given a procedure random01 that outputs 0 or 1 with equal probability. How can you use it to generate random numbers between 0 and 9?
Problem #1.3
Given a biased coin (ie. heads and tails don't have the same probability), how can you use it to simulate a fair coin toss?
Problem #1.4
There are two balls in a bag. I tell you that at least one of them is red. What is the probability that both are red? (Solution)
Problem #1.5
In how many ways can you divide 12 people into 3 groups of 4?
Problem #1.6
Take 2 random chords of a circle. What is the probability that they intersect?
Laws of probability. Random variables.
Problem #2.1
You have N locks, labeled 1 to N each with a corresponding key. Unfortunately, you lost all the labels from the keys, so you decide to relabel the keys with unique random labels from 1 to N.
What is the expected number of keys that end up with a correct label?
Problem #2.2
You're given an array A of real numbers, sampled from $Uniform(0, 1)$.
Let's consider the following algorithm for finding the maximum of the array:
max := -1
for i in 0 .. length(A) {
	if A[i] > max {
		max := A[i]
   	}
}What is the expected number of times the max variable will be updated? That is, what is the expected number of times the line max := A[i] is executed?
Problem #2.3
A disease has a base rate of 1 in 1000 (ie. 1 in 1000 people in a population will have the disease). Let's say you take a test that has 97% true positive rate, and 3% false positive rate.
You just tested positive - what is the probability that you actually have the disease?
Problem #2.4
You're drawing cards from a shuffled deck. How many cards do you expect to draw before drawing the first ace?
Probability flavoured algorithms
Problem #3.1
Given a function F(x) returning the value of a cumulative distribution function of a continuous random variable $X$, implement a function sample(F)  that returns a sample of $X$.
Problem #3.2
Given a circle centered at $(x, y)$ with radius $r$, implement a function random_point(x, y, r) that returns a random point inside this circle.
Problem #3.4
Given a function Bernoulli() that returns 0 or 1 with equal probability, write a function Normal(mean, std) that returns a random sample from a Normal distribution with mean mean and standard deviation std.