Python Puzzles
You live in a society where female children are preferred over male children. By law, couples must conceive children until they produce a female offspring. If their first child is male, they can have additional children until a female is born. Once a female is born, they are allowed no additional children.
What is the average ratio of females to males in this society?
The ratio will be 50/50.
import random
female = 0
male = 0
# run the simulation 100,000 million times
for _ in range(100_000):
# randomly generate a gender (0 for female, 1 for male)
gender = random.randint(0,1);
if gender == 0:
female += 1
# keep generating males until a female is generated
while gender != 0:
male += 1
gender = random.randint(0,1)
if gender == 0:
female += 1
# print the results
print('Number of females is ' + str(female))
print('Number of males is ' + str(male))
print('Percentage female is ' + str(female/(female+male)))
print('Percentage male is ' + str(male/(female+male)))
