mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-03-24 22:02:20 +08:00
Documentation for c26eea874d
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||||
<meta name="generator" content="Doxygen 1.12.0"/>
|
||||
<meta name="generator" content="Doxygen 1.13.2"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>TheAlgorithms/C++: probability/geometric_dist.cpp Source File</title>
|
||||
<link rel="icon" href="../../favicon.svg" type="image/x-icon" />
|
||||
@@ -60,7 +60,7 @@ window.MathJax = {
|
||||
</table>
|
||||
</div>
|
||||
<!-- end header part -->
|
||||
<!-- Generated by Doxygen 1.12.0 -->
|
||||
<!-- Generated by Doxygen 1.13.2 -->
|
||||
<script type="text/javascript">
|
||||
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
||||
var searchBox = new SearchBox("searchBox", "../../search/",'.html');
|
||||
@@ -124,7 +124,8 @@ $(function(){initNavTree('de/d72/geometric__dist_8cpp_source.html','../../'); in
|
||||
<div class="headertitle"><div class="title">geometric_dist.cpp</div></div>
|
||||
</div><!--header-->
|
||||
<div class="contents">
|
||||
<a href="../../de/d72/geometric__dist_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
|
||||
<a href="../../de/d72/geometric__dist_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
|
||||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
|
||||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include <cassert></span> </div>
|
||||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include <cmath></span> </div>
|
||||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include <cstdint></span> </div>
|
||||
@@ -133,7 +134,7 @@ $(function(){initNavTree('de/d72/geometric__dist_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include <limits></span> </div>
|
||||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include <random></span> </div>
|
||||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#include <vector></span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
|
||||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span></div>
|
||||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../d4/ded/namespaceprobability.html">probability</a> {</div>
|
||||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keyword">namespace </span><a class="code hl_namespace" href="../../dd/d8a/namespacegeometric__dist.html">geometric_dist</a> {</div>
|
||||
<div class="foldopen" id="foldopen00048" data-start="{" data-end="}">
|
||||
@@ -141,39 +142,39 @@ $(function(){initNavTree('de/d72/geometric__dist_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(rand()) / <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(RAND_MAX);</div>
|
||||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
|
||||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span></div>
|
||||
<div class="foldopen" id="foldopen00055" data-start="{" data-end="};">
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html"> 55</a></span><span class="keyword">class </span><a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">geometric_distribution</a> {</div>
|
||||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html"> 55</a></span><span class="keyword">class </span><a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aa12088ba133dd0910103db0eb0ef2797">geometric_distribution</a> {</div>
|
||||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keyword">private</span>:</div>
|
||||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3"> 57</a></span> <span class="keywordtype">float</span> <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>; </div>
|
||||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
|
||||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keyword">public</span>:</div>
|
||||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aa12088ba133dd0910103db0eb0ef2797"> 64</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aa12088ba133dd0910103db0eb0ef2797">geometric_distribution</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>& <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>) : <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>(<a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>) {}</div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
|
||||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span></div>
|
||||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a41051365f8ac7700f2ed5880a6760413"> 71</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a41051365f8ac7700f2ed5880a6760413">expected_value</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 1.0f / <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>; }</div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </div>
|
||||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span></div>
|
||||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960"> 77</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960">variance</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (1.0f - <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>) / (<a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a> * <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>); }</div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
|
||||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span></div>
|
||||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a0a10c512e13dd3a052e1c6d7f4d6f0f2"> 84</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a0a10c512e13dd3a052e1c6d7f4d6f0f2">standard_deviation</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> std::sqrt(<a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aea8b0d649f0dc9a6f8baf3341a0b4960">variance</a>()); }</div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
|
||||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span></div>
|
||||
<div class="foldopen" id="foldopen00093" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aee973db9f0435e0cb4cc70f8eb3447a1"> 93</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aee973db9f0435e0cb4cc70f8eb3447a1">probability_density</a>(<span class="keyword">const</span> uint32_t& k)<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> std::pow((1.0f - <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>), <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(k - 1)) * <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>;</div>
|
||||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
|
||||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span></div>
|
||||
<div class="foldopen" id="foldopen00104" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a08328dc7d62188427111f176b56a105a"> 104</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a08328dc7d62188427111f176b56a105a">cumulative_distribution</a>(<span class="keyword">const</span> uint32_t& k)<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> 1.0f - std::pow((1.0f - <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>), <span class="keyword">static_cast<</span><span class="keywordtype">float</span><span class="keyword">></span>(k));</div>
|
||||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
|
||||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span></div>
|
||||
<div class="foldopen" id="foldopen00116" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aaf762e88c66918d7afda4234f28a7ddf"> 116</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#aaf762e88c66918d7afda4234f28a7ddf">inverse_cumulative_distribution</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>& cdf)<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">return</span> std::log(1.0f - cdf) / std::log(1.0f - <a class="code hl_variable" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#ad5ed23a251dbe55ad1ed06bf1a465ad3">p</a>);</div>
|
||||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
|
||||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span></div>
|
||||
<div class="foldopen" id="foldopen00125" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a8aae1cebcf42ed2332f1c7217c401aa3"> 125</a></span> uint32_t <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a8aae1cebcf42ed2332f1c7217c401aa3">draw_sample</a>()<span class="keyword"> const </span>{</div>
|
||||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">float</span> uniform_sample = <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a82964ca6180507deb5fafc71050012ba">generate_uniform</a>();</div>
|
||||
@@ -182,7 +183,7 @@ $(function(){initNavTree('de/d72/geometric__dist_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> 1;</div>
|
||||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> }</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
|
||||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span></div>
|
||||
<div class="foldopen" id="foldopen00145" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"><a class="line" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a4620163a196709484225774d87de6d69"> 145</a></span> <span class="keywordtype">float</span> <a class="code hl_function" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html#a4620163a196709484225774d87de6d69">range_tries</a>(<span class="keyword">const</span> uint32_t& min_tries = 1,</div>
|
||||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keyword">const</span> uint32_t& max_tries =</div>
|
||||
@@ -198,7 +199,7 @@ $(function(){initNavTree('de/d72/geometric__dist_8cpp_source.html','../../'); in
|
||||
</div>
|
||||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span>} <span class="comment">// namespace geometric_dist</span></div>
|
||||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span>} <span class="comment">// namespace probability</span></div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
|
||||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span></div>
|
||||
<div class="foldopen" id="foldopen00165" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"><a class="line" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6"> 165</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a>(</div>
|
||||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keyword">const</span> <a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a>& dist) {</div>
|
||||
@@ -228,7 +229,7 @@ $(function(){initNavTree('de/d72/geometric__dist_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> << std::endl;</div>
|
||||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
|
||||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span></div>
|
||||
<div class="foldopen" id="foldopen00197" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"><a class="line" href="../../de/d72/geometric__dist_8cpp.html#aa8dca7b867074164d5f45b0f3851269d"> 197</a></span><span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#aa8dca7b867074164d5f45b0f3851269d">test</a>() {</div>
|
||||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_class" href="../../da/d19/classprobability_1_1geometric__dist_1_1geometric__distribution.html">probability::geometric_dist::geometric_distribution</a> dist(0.3);</div>
|
||||
@@ -285,7 +286,7 @@ $(function(){initNavTree('de/d72/geometric__dist_8cpp_source.html','../../'); in
|
||||
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#a70fd1cc5c3a2813f28683dc75dcd65b6">sample_test</a>(dist);</div>
|
||||
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span>}</div>
|
||||
</div>
|
||||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
|
||||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span></div>
|
||||
<div class="foldopen" id="foldopen00256" data-start="{" data-end="}">
|
||||
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"><a class="line" href="../../de/d72/geometric__dist_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4"> 256</a></span><span class="keywordtype">int</span> <a class="code hl_function" href="../../de/d72/geometric__dist_8cpp.html#ae66f6b31b5ad750f1fe042a706a4e3d4">main</a>() {</div>
|
||||
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> srand(time(<span class="keyword">nullptr</span>));</div>
|
||||
@@ -316,7 +317,7 @@ $(function(){initNavTree('de/d72/geometric__dist_8cpp_source.html','../../'); in
|
||||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||||
<ul>
|
||||
<li class="navelem"><a class="el" href="../../dir_82e494173a87936756866de2fa774307.html">probability</a></li><li class="navelem"><a class="el" href="../../de/d72/geometric__dist_8cpp.html">geometric_dist.cpp</a></li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
|
||||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="../../doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.2 </li>
|
||||
</ul>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user