White Ball

Python Puzzles

Back to the Python! homepage


Imagine a bag that contains a single ball, which has an equal probability of being either black or white. Now, add a white ball to this bag. At this point, the bag holds two balls: one white and another that could be either white or black, each with an equal chance of 50%. If you randomly draw one ball from the bag, what would be the likelihood that the remaining ball inside the bag is white, given that you’ve drawn a white ball?


Don’t overcomplicate this conundrum; the probability that the remaining ball in the bag is white will be 50%.

Here is the Python code to run a simulation.

import random

# number of simulations
num_simulations = 1000000

# counter for the number of times the remaining ball is white given that a white ball was drawn
count_white_remain = 0

for _ in range(num_simulations):
    # initial bag has a white ball and a ball that is equally likely to be black or white
    bag = ['white', random.choice(['white', 'black'])]

    # draw a ball
    drawn_ball = random.choice(bag)

    # if the drawn ball is white, remove it and check the color of the remaining ball
    if drawn_ball == 'white':
        bag.remove(drawn_ball)
        if bag[0] == 'white':
            count_white_remain += 1

# probability that the ball left in the bag is white given that a white ball was drawn
prob_white_remain = count_white_remain / num_simulations

print('Probability that the remaining ball is white given that a white ball was drawn:', prob_white_remain)