import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
An airline has a flight with 6 seats. They always sell 12 tickets for this flight and ticket holders show up independently with probability 𝑝. Plot the following quantities as a function of 𝑝.
results = np.zeros((10, 2))
numTrials = 100000
numTickets = 12
numSeats = 6
for i,p in enumerate(np.linspace(0.1, 1.0, num=10)):
arrivals = np.random.random((numTickets, numTrials)) < p
numArrivals = arrivals.sum(axis=0)
results[i] = [p, numArrivals.mean()]
results
plt.plot(results[:,0], results[:,1], 'bo-')
plt.xlabel('Probability of arrival p')
plt.ylabel('Expected value')
plt.title('Expected number of ticket holders that show up')
results = np.zeros((10, 2))
numTrials = 100000
numTickets = 12
numSeats = 6
for i,p in enumerate(np.linspace(0.1, 1.0, num=10)):
arrivals = np.random.random((numTickets, numTrials)) < p
numArrivals = arrivals.sum(axis=0)
indicatorOverbooked = numArrivals > numSeats
results[i] = [p, indicatorOverbooked.mean()]
results
plt.plot(results[:,0], results[:,1], 'bo-')
plt.xlabel('Probability of arrival p')
plt.ylabel('Probability')
plt.title('Probability that flight is overbooked')
results = np.zeros((10, 2))
numTrials = 100000
numTickets = 12
numSeats = 6
for i,p in enumerate(np.linspace(0.1, 1.0, num=10)):
arrivals = np.random.random((numTickets, numTrials)) < p
numArrivals = arrivals.sum(axis=0)
indicatorOverbooked = numArrivals > numSeats
numDontFly = numArrivals[indicatorOverbooked] - numSeats
results[i] = [p, numDontFly.mean()]
results
plt.plot(results[:,0], results[:,1], 'bo-')
plt.xlabel('Probability of arrival p')
plt.ylabel('Conditional expected value')
plt.title("Expected number of ticket holders who show up but don't fly given that the flight is overbooked")