Class: Croupier::Distributions::Bernoulli

Inherits:
Croupier::Distribution show all
Defined in:
lib/croupier/distributions/bernoulli.rb

Overview

Bernoulli Distribution Discrete probability distribution taking value 1 with success probability p and value 0 with failure probability 1-p Equivalent to a Binomial(1,p)

Instance Attribute Summary

Attributes inherited from Croupier::Distribution

#description, #name, #parameters

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Croupier::Distribution

#configure, #generate_sample, #params, #to_enum

Constructor Details

#initialize(options = {}) ⇒ Bernoulli

Returns a new instance of Bernoulli.



11
12
13
14
15
16
# File 'lib/croupier/distributions/bernoulli.rb', line 11

def initialize(options={})
  @name = "Bernoulli distribution"
  @description = "Discrete probability distribution taking value 1 with success probability p and value 0 with failure probability 1-p."
  configure(options)
  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_nameObject



26
27
28
# File 'lib/croupier/distributions/bernoulli.rb', line 26

def self.cli_name
  "bernoulli"
end

.cli_optionsObject



30
31
32
33
34
35
36
# File 'lib/croupier/distributions/bernoulli.rb', line 30

def self.cli_options
  {:options => [
     [:success, 'success probability', {:type=>:float, :short => "-p", :default => 0.5}]
   ],
   :banner => "Bernoulli distribution. Discrete probability distribution taking value 1 with success probability p and value 0 with failure probability 1-p."
  }
end

Instance Method Details

#default_parametersObject



22
23
24
# File 'lib/croupier/distributions/bernoulli.rb', line 22

def default_parameters
  {:success => 0.5}
end

#generate_numberObject



18
19
20
# File 'lib/croupier/distributions/bernoulli.rb', line 18

def generate_number
  binomial_1_p.generate_number
end