code: function Bandit(options) {
  
      this.arms = []
  
      // If options.arms is explicitly passed, initialize the arms array with it
      if (options && options.arms) {
        for (var i = 0; i < options.arms.length; i++) {
          this.arms.push(new Arm(options.arms[i]))
        }
      } else { // Otherwise initialize empty arms based on options.numberOfArms
        for (var a = 0; a < (options || {}).numberOfArms; a++) {
          this.arms.push(new Arm())
        }
      }
    }
docs: ///////////////////////////////////////////////////////////////////////// Bandit - the n-armed bandit which selects arms from observed rewards. // ///////////////////////////////////////////////////////////////////////// 
  @param {object} [options]
  @param {Array.<{count: int, sum: number}>} [options.arms]
  - Initialize the bandit with arms specified by the data provided
  
  @param {int} [options.numberOfArms]
  - Initialize the bandit with a number of empty arms
  
  Note, only one of options.arms and options.numberOfArms should
  be provided.  If both are provided, options.arms takes precedence and
  numberOfArms will be ignored.
  
  @constructor