Class: Croupier::Distributions::Binomial
- Inherits:
-
Croupier::Distribution
- Object
- Croupier::Distribution
- Croupier::Distributions::Binomial
- Defined in:
- lib/croupier/distributions/binomial.rb
Overview
Binomial Distribution Discrete probability distribution of the number of successes in a sequence of Bernoulli trials each of which yields success with probability p
Instance Attribute Summary
Attributes inherited from Croupier::Distribution
#description, #name, #parameters
Class Method Summary collapse
Instance Method Summary collapse
- #default_parameters ⇒ Object
- #generate_number ⇒ Object
-
#initialize(options = {}) ⇒ Binomial
constructor
A new instance of Binomial.
Methods inherited from Croupier::Distribution
#configure, #generate_sample, #params
Constructor Details
#initialize(options = {}) ⇒ Binomial
Returns a new instance of Binomial.
11 12 13 14 15 16 |
# File 'lib/croupier/distributions/binomial.rb', line 11 def initialize(={}) @name = "Binomial distribution" @description = "Discrete probability distribution of the number of successes in a sequence of Bernoulli trials." configure() raise Croupier::InputParamsError, "Probability of success must be in the interval [0,1]" if params[:success] > 1 || params[:success] < 0 end |
Class Method Details
.cli_name ⇒ Object
33 34 35 |
# File 'lib/croupier/distributions/binomial.rb', line 33 def self.cli_name "binomial" end |
.cli_options ⇒ Object
37 38 39 40 41 42 43 44 |
# File 'lib/croupier/distributions/binomial.rb', line 37 def self. {:options => [ [:size, 'number of trials', {:type => :integer, :default => 1}], [:success, 'success probability of each trial', {:type=>:float, :short => "-p", :default => 0.5}] ], :banner => "Binomial distribution. Discrete probability distribution of the number of successes in a sequence of Bernoulli trials." } end |
Instance Method Details
#default_parameters ⇒ Object
29 30 31 |
# File 'lib/croupier/distributions/binomial.rb', line 29 def default_parameters {:success => 0.5, :size => 1} end |
#generate_number ⇒ Object
18 19 20 21 22 23 24 25 26 27 |
# File 'lib/croupier/distributions/binomial.rb', line 18 def generate_number x = -1 s = 0 loop do s += base_geometric.generate_number x += 1 break if s > params[:size] end x end |