A 
negative_binomial_distribution random number distribution
produces random integers 
i≥0
distributed according to
the discrete probability function
P(i|k,p)=(k+i−1i)⋅pk⋅(1−p)i .
[
 Note: This implies that 
P(i|k,p) is undefined when 
p == 1. —
 end note  ]
template<class IntType = int>
  class negative_binomial_distribution {
  public:
        using result_type = IntType;
    using param_type  = unspecified;
        negative_binomial_distribution() : negative_binomial_distribution(1) {}
    explicit negative_binomial_distribution(IntType k, double p = 0.5);
    explicit negative_binomial_distribution(const param_type& parm);
    void reset();
        template<class URBG>
      result_type operator()(URBG& g);
    template<class URBG>
      result_type operator()(URBG& g, const param_type& parm);
        IntType k() const;
    double p() const;
    param_type param() const;
    void param(const param_type& parm);
    result_type min() const;
    result_type max() const;
  };
explicit negative_binomial_distribution(IntType k, double p = 0.5);