Famous puzzle: Girl/Boy proportion problem (Sum of infinite series)
Puzzle
In a country in which people only want boys, every family continues to have children until they have a boy. If they have a girl, they have another child. If they have a boy, they stop. What is the proportion of boys to girls in the country?
My solution (not finished)
If we assume that the probability of having a girl is 50%, the set of possible cases are:
Boy (50%)
Girl, Boy (25%)
Girl, Girl, Boy (12.5%)
...
So, if we call G the number of girls that a family had and B the number of boys that a family had, we have:
$B = 1$
$P(G = x) = (1/2)^{x+1}*x$
So
$G = \Sigma (1/2)^{x+1}*x$
I feel like the sum of this infinite serie is 1 and that the proportion of girls/boys in this country will be 50%, but I don't know how to prove it!
Thanks!
This is a trick question!
This question is very simple if you just learn to accept that most of the information given is completely irrelevant...
It doesnt matter how many families continue to have children and how many stop at 1 or 2...its no more relevant than what car they drive...
None of the information provided alters the statistical probability of a child born being male or female...its still 50%
Mike Scott is correct that you don't need to sum the series, but suppose you want to. Each family has 1 boy-that is easy. Each family has 50% chance of no girls, 25% chance of 1, etc. So the average number of girls is $$\sum_{i=0}^\infty \frac{i}{2^{i+1}}$$ The way to sum this is to remember that $$\sum_{i=0}^\infty a^{-i} = \frac{1}{1-1/a}=\frac a{a-1}$$ Now if you take the derivative with respect to a and evaluate it at a=2 So $$\frac{d}{da}\sum_{i=0}^\infty a^{-i} \\=\sum_{i=0}^\infty{-i}a^{-(i+1)} \\=\frac{d}{da} \frac{1}{1-1/a} \\=\frac d{da}\frac a{a-1} \\=\frac {a-1-a}{(a-1)^2} \\=\frac{-1}{(a-1)^2}=-1$$ for $a=2$. So there is an average of one girl per family as well
Google and other interviewing companies made an important assumption — that there are infinitely many families. Under this assumption, we have their clever and simple answer: In expectation, there are as many boys as girls.
However, it turns out that the answer depends on the number of families there are in the country. If there is a finite number of families, then in expectation, there'll be more boys than girls.
Consider the extreme scenario where there's only one family, then 1/2 the time the fraction of girls is 0 (B in our only family), 1/4 the time it's 1/2 (GB), 1/8 the time it's 2/3 (GGB), 1/16 the time it's 3/4 (GGGB) etc. And so the expected fraction of girls is:
$$\frac{1}{2}\times 0+\frac{1}{4}\times \frac{1}{2}+\frac{1}{8}\times \frac{2}{3}+\frac{1}{16}\times \frac{3}{4}+\dots = 1 - \ln 2 \approx 0.307.$$
If there are 4 families, the expected fraction of girls in the country is about 0.439; and if there are 10, it's about 0.475.
See this Math.Overflow answer for more details.
(By the way, this puzzle also appeared in Thomas Schelling's Micromotives and Macrobehavior, 1978, p. 72.)
If the probability is 50% then we can expect from four families to typically have:
B B, B G, G B, G G
However because families stop when they have a boy, we do not gain the boy from the first row or the girl from the second row: B B, B G,
Therefore we actually get three girls and three boys.
From 8 families we would expect:
B B B, B B G, B G B, G B B, B G G, G B G, G G B, G G G
and we would actually keep: B, B, B, GB, B, GB, GGB, GGG,
for a total of 7 G and 7 B.
I expect proportion to remain 50% for each expected outcome from larger numbers of families but haven't proved anything as such. This is a lot simpler though and doesn't require summation notation or any advanced maths.
When I first heard this puzzle (not here), I was convinced that you would end up with more girls. My intuition was of course wrong. I love the proof that this is not the case, but for those that enjoy a demonstration to enhance the intuition, this is some python code I wrote to convince myself that this is indeed the case.
import random
class family():
boys = 0
girls = 0
def haveKids(self):
while not self.boys:
if random.randint(0, 1):
self.boys += 1
else:
self.girls += 1
population = [family() for f in range(1000000)]
map(lambda f: f.haveKids(), population)
boys = sum(map(lambda f: f.boys, population))
girls = sum(map(lambda f: f.girls, population))
print "boys:", boys, "girls:", girls
print "difference:", abs(boys - girls)
print "percentage difference: %" + str(abs(float(boys - girls)/(boys + girls)))
This simulates a population of 1 million families. The difference between the number of girls and boys is indeed nominal. The percentage difference is typically around 0.001% for 1,000,000 families.