1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Binomial Coin-Flipping Example</title> 5<link rel="stylesheet" href="../../../../math.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../../../index.html" title="Math Toolkit 2.12.0"> 8<link rel="up" href="../binom_eg.html" title="Binomial Distribution Examples"> 9<link rel="prev" href="../binom_eg.html" title="Binomial Distribution Examples"> 10<link rel="next" href="binomial_quiz_example.html" title="Binomial Quiz Example"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="../binom_eg.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binomial_quiz_example.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h5 class="title"> 27<a name="math_toolkit.stat_tut.weg.binom_eg.binomial_coinflip_example"></a><a class="link" href="binomial_coinflip_example.html" title="Binomial Coin-Flipping Example">Binomial 28 Coin-Flipping Example</a> 29</h5></div></div></div> 30<p> 31 An example of a <a href="http://en.wikipedia.org/wiki/Bernoulli_process" target="_top">Bernoulli 32 process</a> is coin flipping. A variable in such a sequence may be 33 called a Bernoulli variable. 34 </p> 35<p> 36 This example shows using the Binomial distribution to predict the probability 37 of heads and tails when throwing a coin. 38 </p> 39<p> 40 The number of correct answers (say heads), X, is distributed as a binomial 41 random variable with binomial distribution parameters number of trials 42 (flips) n = 10 and probability (success_fraction) of getting a head p 43 = 0.5 (a 'fair' coin). 44 </p> 45<p> 46 (Our coin is assumed fair, but we could easily change the success_fraction 47 parameter p from 0.5 to some other value to simulate an unfair coin, 48 say 0.6 for one with chewing gum on the tail, so it is more likely to 49 fall tails down and heads up). 50 </p> 51<p> 52 First we need some includes and using statements to be able to use the 53 binomial distribution, some std input and output, and get started: 54 </p> 55<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">binomial</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 56 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">binomial</span><span class="special">;</span> 57 58<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span> 59 <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">left</span><span class="special">;</span> 60<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iomanip</span><span class="special">></span> 61 <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setw</span><span class="special">;</span> 62 63<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> 64<span class="special">{</span> 65 <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Using Binomial distribution to predict how many heads and tails."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 66 <span class="keyword">try</span> 67 <span class="special">{</span> 68</pre> 69<p> 70 See note <a class="link" href="binomial_coinflip_example.html#coinflip_eg_catch">with the catch block</a> 71 about why a try and catch block is always a good idea. 72 </p> 73<p> 74 First, construct a binomial distribution with parameters success_fraction 75 1/2, and how many flips. 76 </p> 77<pre class="programlisting"><span class="keyword">const</span> <span class="keyword">double</span> <span class="identifier">success_fraction</span> <span class="special">=</span> <span class="number">0.5</span><span class="special">;</span> <span class="comment">// = 50% = 1/2 for a 'fair' coin.</span> 78<span class="keyword">int</span> <span class="identifier">flips</span> <span class="special">=</span> <span class="number">10</span><span class="special">;</span> 79<span class="identifier">binomial</span> <span class="identifier">flip</span><span class="special">(</span><span class="identifier">flips</span><span class="special">,</span> <span class="identifier">success_fraction</span><span class="special">);</span> 80 81<span class="identifier">cout</span><span class="special">.</span><span class="identifier">precision</span><span class="special">(</span><span class="number">4</span><span class="special">);</span> 82</pre> 83<p> 84 Then some examples of using Binomial moments (and echoing the parameters). 85 </p> 86<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"From "</span> <span class="special"><<</span> <span class="identifier">flips</span> <span class="special"><<</span> <span class="string">" one can expect to get on average "</span> 87 <span class="special"><<</span> <span class="identifier">mean</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="string">" heads (or tails)."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 88<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Mode is "</span> <span class="special"><<</span> <span class="identifier">mode</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 89<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Standard deviation is "</span> <span class="special"><<</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 90<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"So about 2/3 will lie within 1 standard deviation and get between "</span> 91 <span class="special"><<</span> <span class="identifier">ceil</span><span class="special">(</span><span class="identifier">mean</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">flip</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" and "</span> 92 <span class="special"><<</span> <span class="identifier">floor</span><span class="special">(</span><span class="identifier">mean</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">standard_deviation</span><span class="special">(</span><span class="identifier">flip</span><span class="special">))</span> <span class="special"><<</span> <span class="string">" correct."</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 93<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Skewness is "</span> <span class="special"><<</span> <span class="identifier">skewness</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 94<span class="comment">// Skewness of binomial distributions is only zero (symmetrical)</span> 95<span class="comment">// if success_fraction is exactly one half,</span> 96<span class="comment">// for example, when flipping 'fair' coins.</span> 97<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Skewness if success_fraction is "</span> <span class="special"><<</span> <span class="identifier">flip</span><span class="special">.</span><span class="identifier">success_fraction</span><span class="special">()</span> 98 <span class="special"><<</span> <span class="string">" is "</span> <span class="special"><<</span> <span class="identifier">skewness</span><span class="special">(</span><span class="identifier">flip</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Expect zero for a 'fair' coin.</span> 99</pre> 100<p> 101 Now we show a variety of predictions on the probability of heads: 102 </p> 103<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"For "</span> <span class="special"><<</span> <span class="identifier">flip</span><span class="special">.</span><span class="identifier">trials</span><span class="special">()</span> <span class="special"><<</span> <span class="string">" coin flips: "</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 104<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting no heads is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 105<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting at least one head is "</span> <span class="special"><<</span> <span class="number">1.</span> <span class="special">-</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 106</pre> 107<p> 108 When we want to calculate the probability for a range or values we can 109 sum the PDF's: 110 </p> 111<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 0 or 1 heads is "</span> 112 <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">0</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> <span class="comment">// sum of exactly == probabilities</span> 113</pre> 114<p> 115 Or we can use the cdf. 116 </p> 117<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 0 or 1 (<= 1) heads is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">1</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 118<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">9</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 119</pre> 120<p> 121 Note that using 122 </p> 123<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special"><<</span> <span class="number">1.</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 124</pre> 125<p> 126 is less accurate than using the complement 127 </p> 128<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting 9 or 10 heads is "</span> <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">))</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 129</pre> 130<p> 131 Since the subtraction may involve <a href="http://docs.sun.com/source/806-3568/ncg_goldberg.html" target="_top">cancellation 132 error</a>, where as <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">8</span><span class="special">))</span></code> 133 does not use such a subtraction internally, and so does not exhibit the 134 problem. 135 </p> 136<p> 137 To get the probability for a range of heads, we can either add the pdfs 138 for each number of heads 139 </p> 140<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span> 141 <span class="comment">// P(X == 4) + P(X == 5) + P(X == 6)</span> 142 <span class="special"><<</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">4</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">5</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 143</pre> 144<p> 145 But this is probably less efficient than using the cdf 146 </p> 147<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of between 4 and 6 heads (4 or 5 or 6) is "</span> 148 <span class="comment">// P(X <= 6) - P(X <= 3) == P(X < 4)</span> 149 <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">6</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 150</pre> 151<p> 152 Certainly for a bigger range like, 3 to 7 153 </p> 154<pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of between 3 and 7 heads (3, 4, 5, 6 or 7) is "</span> 155 <span class="comment">// P(X <= 7) - P(X <= 2) == P(X < 3)</span> 156 <span class="special"><<</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">7</span><span class="special">)</span> <span class="special">-</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 157<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 158</pre> 159<p> 160 Finally, print two tables of probability for the <span class="emphasis"><em>exactly</em></span> 161 and <span class="emphasis"><em>at least</em></span> a number of heads. 162 </p> 163<pre class="programlisting"><span class="comment">// Print a table of probability for the exactly a number of heads.</span> 164<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting exactly (==) heads"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 165<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">successes</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">successes</span> <span class="special"><=</span> <span class="identifier">flips</span><span class="special">;</span> <span class="identifier">successes</span><span class="special">++)</span> 166<span class="special">{</span> <span class="comment">// Say success means getting a head (or equally success means getting a tail).</span> 167 <span class="keyword">double</span> <span class="identifier">probability</span> <span class="special">=</span> <span class="identifier">pdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">);</span> 168 <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">left</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">successes</span> <span class="special"><<</span> <span class="string">" "</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> 169 <span class="special"><<</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="string">" or 1 in "</span> <span class="special"><<</span> <span class="number">1.</span> <span class="special">/</span> <span class="identifier">probability</span> 170 <span class="special"><<</span> <span class="string">", or "</span> <span class="special"><<</span> <span class="identifier">probability</span> <span class="special">*</span> <span class="number">100.</span> <span class="special"><<</span> <span class="string">"%"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 171<span class="special">}</span> <span class="comment">// for i</span> 172<span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 173 174<span class="comment">// Tabulate the probability of getting between zero heads and 0 up to 10 heads.</span> 175<span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Probability of getting up to (<=) heads"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 176<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">successes</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">successes</span> <span class="special"><=</span> <span class="identifier">flips</span><span class="special">;</span> <span class="identifier">successes</span><span class="special">++)</span> 177<span class="special">{</span> <span class="comment">// Say success means getting a head</span> 178 <span class="comment">// (equally success could mean getting a tail).</span> 179 <span class="keyword">double</span> <span class="identifier">probability</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="identifier">successes</span><span class="special">);</span> <span class="comment">// P(X <= heads)</span> 180 <span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">2</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">successes</span> <span class="special"><<</span> <span class="string">" "</span> <span class="special"><<</span> <span class="identifier">setw</span><span class="special">(</span><span class="number">10</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">left</span> 181 <span class="special"><<</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="string">" or 1 in "</span> <span class="special"><<</span> <span class="number">1.</span> <span class="special">/</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="string">", or "</span> 182 <span class="special"><<</span> <span class="identifier">probability</span> <span class="special">*</span> <span class="number">100.</span> <span class="special"><<</span> <span class="string">"%"</span><span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span> 183<span class="special">}</span> <span class="comment">// for i</span> 184</pre> 185<p> 186 The last (0 to 10 heads) must, of course, be 100% probability. 187 </p> 188<pre class="programlisting"> <span class="keyword">double</span> <span class="identifier">probability</span> <span class="special">=</span> <span class="number">0.3</span><span class="special">;</span> 189 <span class="keyword">double</span> <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="identifier">probability</span><span class="special">);</span> 190 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile (flip, "</span> <span class="special"><<</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="string">") = "</span> <span class="special"><<</span> <span class="identifier">q</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Quantile (flip, 0.3) = 3</span> 191 <span class="identifier">probability</span> <span class="special">=</span> <span class="number">0.6</span><span class="special">;</span> 192 <span class="identifier">q</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">flip</span><span class="special">,</span> <span class="identifier">probability</span><span class="special">);</span> 193 <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Quantile (flip, "</span> <span class="special"><<</span> <span class="identifier">probability</span> <span class="special"><<</span> <span class="string">") = "</span> <span class="special"><<</span> <span class="identifier">q</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> <span class="comment">// Quantile (flip, 0.6) = 5</span> 194<span class="special">}</span> 195<span class="keyword">catch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span><span class="special">&</span> <span class="identifier">e</span><span class="special">)</span> 196<span class="special">{</span> 197 <span class="comment">//</span> 198</pre> 199<p> 200 <a name="coinflip_eg_catch"></a>It is always essential to include try 201 & catch blocks because default policies are to throw exceptions on 202 arguments that are out of domain or cause errors like numeric-overflow. 203 </p> 204<p> 205 Lacking try & catch blocks, the program will abort, whereas the message 206 below from the thrown exception will give some helpful clues as to the 207 cause of the problem. 208 </p> 209<pre class="programlisting"> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> 210 <span class="string">"\n"</span><span class="string">"Message from thrown exception was:\n "</span> <span class="special"><<</span> <span class="identifier">e</span><span class="special">.</span><span class="identifier">what</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span> 211<span class="special">}</span> 212</pre> 213<p> 214 See <a href="../../../../../../example/binomial_coinflip_example.cpp" target="_top">binomial_coinflip_example.cpp</a> 215 for full source code, the program output looks like this: 216 </p> 217<pre class="programlisting">Using Binomial distribution to predict how many heads and tails. 218From 10 one can expect to get on average 5 heads (or tails). 219Mode is 5 220Standard deviation is 1.581 221So about 2/3 will lie within 1 standard deviation and get between 4 and 6 correct. 222Skewness is 0 223Skewness if success_fraction is 0.5 is 0 224 225For 10 coin flips: 226Probability of getting no heads is 0.0009766 227Probability of getting at least one head is 0.999 228Probability of getting 0 or 1 heads is 0.01074 229Probability of getting 0 or 1 (<= 1) heads is 0.01074 230Probability of getting 9 or 10 heads is 0.01074 231Probability of getting 9 or 10 heads is 0.01074 232Probability of getting 9 or 10 heads is 0.01074 233Probability of between 4 and 6 heads (4 or 5 or 6) is 0.6562 234Probability of between 4 and 6 heads (4 or 5 or 6) is 0.6563 235Probability of between 3 and 7 heads (3, 4, 5, 6 or 7) is 0.8906 236 237Probability of getting exactly (==) heads 2380 0.0009766 or 1 in 1024, or 0.09766% 2391 0.009766 or 1 in 102.4, or 0.9766% 2402 0.04395 or 1 in 22.76, or 4.395% 2413 0.1172 or 1 in 8.533, or 11.72% 2424 0.2051 or 1 in 4.876, or 20.51% 2435 0.2461 or 1 in 4.063, or 24.61% 2446 0.2051 or 1 in 4.876, or 20.51% 2457 0.1172 or 1 in 8.533, or 11.72% 2468 0.04395 or 1 in 22.76, or 4.395% 2479 0.009766 or 1 in 102.4, or 0.9766% 24810 0.0009766 or 1 in 1024, or 0.09766% 249 250Probability of getting up to (<=) heads 2510 0.0009766 or 1 in 1024, or 0.09766% 2521 0.01074 or 1 in 93.09, or 1.074% 2532 0.05469 or 1 in 18.29, or 5.469% 2543 0.1719 or 1 in 5.818, or 17.19% 2554 0.377 or 1 in 2.653, or 37.7% 2565 0.623 or 1 in 1.605, or 62.3% 2576 0.8281 or 1 in 1.208, or 82.81% 2587 0.9453 or 1 in 1.058, or 94.53% 2598 0.9893 or 1 in 1.011, or 98.93% 2609 0.999 or 1 in 1.001, or 99.9% 26110 1 or 1 in 1, or 100% 262</pre> 263</div> 264<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 265<td align="left"></td> 266<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar 267 Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, 268 Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan 269 Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg, 270 Daryle Walker and Xiaogang Zhang<p> 271 Distributed under the Boost Software License, Version 1.0. (See accompanying 272 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 273 </p> 274</div></td> 275</tr></table> 276<hr> 277<div class="spirit-nav"> 278<a accesskey="p" href="../binom_eg.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binomial_quiz_example.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> 279</div> 280</body> 281</html> 282