mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-31 13:10:19 -04: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).
 | |
| ]
 | |
| 
 |