mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-11-03 21:40:52 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			119 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
[section:bernoulli_dist Bernoulli Distribution]
 | 
						|
 | 
						|
``#include <boost/math/distributions/bernoulli.hpp>``
 | 
						|
 | 
						|
   namespace boost{ namespace math{
 | 
						|
    template <class RealType = double,
 | 
						|
              class ``__Policy``   = ``__policy_class`` >
 | 
						|
    class bernoulli_distribution;
 | 
						|
 | 
						|
    typedef bernoulli_distribution<> bernoulli;
 | 
						|
 | 
						|
    template <class RealType, class ``__Policy``>
 | 
						|
    class bernoulli_distribution
 | 
						|
    {
 | 
						|
    public:
 | 
						|
       typedef RealType  value_type;
 | 
						|
       typedef Policy    policy_type;
 | 
						|
 | 
						|
       bernoulli_distribution(RealType p); // Constructor.
 | 
						|
       // Accessor function.
 | 
						|
       RealType success_fraction() const
 | 
						|
       // Probability of success (as a fraction).
 | 
						|
    };
 | 
						|
   }} // namespaces
 | 
						|
 | 
						|
The Bernoulli distribution is a discrete distribution of the outcome
 | 
						|
of a single trial with only two results, 0 (failure) or 1 (success),
 | 
						|
with a probability of success p.
 | 
						|
 | 
						|
The Bernoulli distribution is the simplest building block
 | 
						|
on which other discrete distributions of
 | 
						|
sequences of independent Bernoulli trials can be based.
 | 
						|
 | 
						|
The Bernoulli is the binomial distribution (k = 1, p) with only one trial.
 | 
						|
 | 
						|
[@http://en.wikipedia.org/wiki/Probability_density_function probability density function pdf]
 | 
						|
f(0) = 1 - p, f(1) = p.
 | 
						|
[@http://en.wikipedia.org/wiki/Cumulative_Distribution_Function Cumulative distribution function]
 | 
						|
D(k) = if (k == 0) 1 - p else 1.
 | 
						|
 | 
						|
The following graph illustrates how the
 | 
						|
[@http://en.wikipedia.org/wiki/Probability_density_function probability density function pdf]
 | 
						|
varies with the outcome of the single trial:
 | 
						|
 | 
						|
[graph bernoulli_pdf]
 | 
						|
 | 
						|
and the [@http://en.wikipedia.org/wiki/Cumulative_Distribution_Function Cumulative distribution function]
 | 
						|
 | 
						|
[graph bernoulli_cdf]
 | 
						|
 | 
						|
[h4 Member Functions]
 | 
						|
 | 
						|
   bernoulli_distribution(RealType p);
 | 
						|
 | 
						|
Constructs a [@http://en.wikipedia.org/wiki/bernoulli_distribution
 | 
						|
bernoulli distribution] with success_fraction /p/.
 | 
						|
 | 
						|
   RealType success_fraction() const
 | 
						|
 | 
						|
Returns the /success_fraction/ parameter of this distribution.
 | 
						|
 | 
						|
[h4 Non-member Accessors]
 | 
						|
 | 
						|
All the [link math_toolkit.dist_ref.nmp usual non-member accessor functions]
 | 
						|
that are generic to all distributions are supported: __usual_accessors.
 | 
						|
 | 
						|
The domain of the random variable is 0 and 1,
 | 
						|
and the useful supported range is only 0 or 1.
 | 
						|
 | 
						|
Outside this range, functions are undefined, or may throw domain_error exception
 | 
						|
and make an error message available.
 | 
						|
 | 
						|
[h4 Accuracy]
 | 
						|
 | 
						|
The Bernoulli distribution is implemented with simple arithmetic operators
 | 
						|
and so should have errors within an epsilon or two.
 | 
						|
 | 
						|
[h4 Implementation]
 | 
						|
 | 
						|
In the following table /p/ is the probability of success and /q = 1-p/.
 | 
						|
/k/ is the random variate, either 0 or 1.
 | 
						|
 | 
						|
[note The Bernoulli distribution is implemented here as a /strict discrete/ distribution.
 | 
						|
If a generalised version, allowing k to be any real, is required then
 | 
						|
the binomial distribution with a single trial should be used, for example:
 | 
						|
 | 
						|
`binomial_distribution(1, 0.25)`
 | 
						|
]
 | 
						|
 | 
						|
[table
 | 
						|
[[Function][Implementation Notes]]
 | 
						|
[[Supported range][{0, 1}]]
 | 
						|
[[pdf][Using the relation: pdf = 1 - p for k = 0, else p ]]
 | 
						|
[[cdf][Using the relation: cdf = 1 - p for k = 0, else 1]]
 | 
						|
[[cdf complement][q = 1 - p]]
 | 
						|
[[quantile][if x <= (1-p) 0 else 1]]
 | 
						|
[[quantile from the complement][if x <= (1-p) 1 else 0]]
 | 
						|
[[mean][p]]
 | 
						|
[[variance][p * (1 - p)]]
 | 
						|
[[mode][if (p < 0.5) 0 else 1]]
 | 
						|
[[skewness][(1 - 2 * p) / sqrt(p * q)]]
 | 
						|
[[kurtosis][6 * p * p - 6 * p +1/ p * q]]
 | 
						|
[[kurtosis excess][kurtosis -3]]
 | 
						|
]
 | 
						|
 | 
						|
[h4 References]
 | 
						|
* [@http://en.wikipedia.org/wiki/Bernoulli_distribution Wikpedia Bernoulli distribution]
 | 
						|
* [@http://mathworld.wolfram.com/BernoulliDistribution.html Weisstein, Eric W. "Bernoulli Distribution." From MathWorld--A Wolfram Web Resource.]
 | 
						|
 | 
						|
[endsect] [/section:bernoulli_dist bernoulli]
 | 
						|
 | 
						|
[/
 | 
						|
  Copyright 2006 John Maddock and Paul A. Bristow.
 | 
						|
  Distributed under the Boost Software License, Version 1.0.
 | 
						|
  (See accompanying file LICENSE_1_0.txt or copy at
 | 
						|
  http://www.boost.org/LICENSE_1_0.txt).
 | 
						|
]
 | 
						|
 |