code: def roll_mc(self, num_hist=10**5):
          
          # This is hard to read. I wanted to keep the underlying functions
          # static, so this is essentially just a wrapper around _find_best_pbe.
          self.arr_res, self.pbe_res = self._find_best_pbe(num_hist,
              self.num_dice, self.dice_type, self.add_val, self.num_attribute,
              self.keep_dice, self.reroll, self.num_arrays, self.keep_attribute,
              self.pbe_map, self.roll_low_limit, self.roll_high_limit,
              self.pbe_low_limit, self.pbe_high_limit)
          return self
docs: Runs the initialized Monte Carlo simulation to determine the equivalent
          Point Buy of an ability score rolling method. NOTE- This method must
          be called BEFORE "plot_histogram".
  
          This method returns self, so you can stack the "plot_histogram" and
          "get_results" methods, like pbe1.roll_mc().plot_histogram()
  
          :param num_hist: Number of Monte Carlo histories to run. Suggest 10**5