code: def _compute_probabilities(miner_data, wait_blocks, sample_size):
      
      miner_data_by_price = tuple(sorted(
          miner_data,
          key=operator.attrgetter('low_percentile_gas_price'),
          reverse=True,
      ))
      for idx in range(len(miner_data_by_price)):
          low_percentile_gas_price = miner_data_by_price[idx].low_percentile_gas_price
          num_blocks_accepting_price = sum(m.num_blocks for m in miner_data_by_price[idx:])
          inv_prob_per_block = (sample_size - num_blocks_accepting_price) / sample_size
          probability_accepted = 1 - inv_prob_per_block ** wait_blocks
          yield Probability(low_percentile_gas_price, probability_accepted)
docs: Computes the probabilities that a txn will be accepted at each of the gas
      prices accepted by the miners.