I once had a book of puzzles, which posed this question (paraphrased):

Alice likes tea. She has a box containing 100 teabags. The teabags come in twos (that is, two teabags are attached to each other). Every day, Alice makes a cup of tea with the teabags. She would reach into the box of teabags and pick something out. If she picks a teabag that's attached to another, she uses one of them and tosses the other back. If she picks a single teabag, she uses that only. When the box is empty (i.e. 100 days have passed), she buys a new box of 100 teabags (50 $\times$ 2).

One day Alice goes on holiday. When she returns, she's completely forgotten how many teabags she's used. As she is reaching into the box of teabags, she wonders if she's more likely to draw out two teabags or one. She reasons: because two teabags are physically bigger than one, I'm more likely to draw out two teabags.

Is her thinking reasonable?

I don't have the book anymore, but I vaguely remember the solution as her thinking is not reasonable. Because there's no prior at all, both outcomes are equally likely, and the probability of either is 50%.

Is the book's argument correct? It seems counterintuitive to me: because Alice has no idea how many teabags she's used, probability theory can't even begin to attack the problem. From that, since probability theory is inapplicable, one might as well use physics reasoning and therefore Alice's thinking is reasonable.


If the probability of choosing any one teabag is the same, whether or not it is adjoined to another teabag or separate, then the probability of choosing an adjoined teabag is 50%. This also assumes that Alice is equally likely to do this experiment on each of the 100 days.

(My assumption is assuming that if only bags A, B, and C were left and bag A and B were connected and bag C was separate, then all three bags have 33.33% chance of being chosen.)

Given those assumptions, let us start by labeling one of the 100 original teabags $A$ and the teabag it is joined to $B$. Now, suppose, without loss of generality, that Alice ends up choosing teabag $A$. The question is asking, "How likely is it that teabag $A$ is not already separated?". Well, if teabag $B$ was chosen before teabag $A$, then $A$ will have already been separated when Alice chooses $A$. If teabag $B$ was not chosen before choosing teabag $A$, then teabag $A$ will still be attached to teabag $B$. Given our assumption that each teabag is equally likely to be selected, the question can be rephrased as "What is the probability that teabag $A$ was chosen before teabag $B$?". This probability is 50%.

Here is some python code simulating the situation. In particular, you can change the assumption that all teabags are equally likely to be chosen by changing the weights of 1*box1 and 2*box2. If you don't agree with the assumption that Alice is equally likely to do this experiment on any of the 100 days, you can apply a non-uniform distribution for the number of teabags that have already been chosen to the ending values stored in sim_results.

from random import randint
def trials(num_sims):
    sim_results = [0] * 100 # stores the probability that a singleton bag will be chosen on any given day (e.g. sim_results[49] has the probability that a singleton bag is chosen on the 50th day)
    for i in range(num_sims):
        box1 = 0 # 0 teabags that start out as separate
        box2 = 50 # 50*2 = 100 teabags are connected to one other teabag
        day = 0
        while box1 + box2 > 0:
            sim_results[day] += 1-box1/(box1 + 2*box2)
            if randint(1, box1 + 2*box2) <= box1: # 1 standalone teabag was chosen
                box1 -= 1 # remove the standalone teabag
            else: # a paired teabag is chosen
                box2 -= 1 # remove the paired teabag
                box1 += 1 # add the now-unpaired teabag to the box
            day += 1
    for i in range(len(sim_results)):
        sim_results[i] /= num_sims
    return sim_results # return the empirical probability of choosing a separated bag on each of the 100 days
x = trials(100000) # 100K trials
print('The probability of choosing a connected bag is', sum(x)/100)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.