<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[[closed&#x2F;solved] Kann mir wer Boost.Random erklären?]]></title><description><![CDATA[<p>Oder erklären wieso das folgende immer die gleichen Ergebnisse liefert:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt;
#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

int main()
{
    std::srand(std::clock());

    for(int i = 0; i &lt; 1000; ++i)
    {
        std::cout &lt;&lt; std::rand() &lt;&lt; ' ' &lt;&lt; std::endl;
    }

    return 0;
}
</code></pre>
<p>Ich bekomme aus irgendeinem mir unerklärlichen Grund immer die gleichen tausend verschiedenen Zahlen raus. Zudem sind diese tausend verschiedene mir zu wenig verschieden.</p>
<p>Daher wollte ich Boost.Random benutzen, doch die Dokumentation dazu scheint mir miserabel zu sein oder ich versteh einfach kein Wort. Kann mir jemand sagen, wie ich einfach ein paar zufällige Integers mit Boost.Random bekommen kann? Am besten auch positiv und negativ, wenn es geht.</p>
<p>Danke im voraus.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/218066/closed-solved-kann-mir-wer-boost-random-erklären</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 03:22:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/218066.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Jul 2008 12:50:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [closed&#x2F;solved] Kann mir wer Boost.Random erklären? on Tue, 15 Jul 2008 14:58:13 GMT]]></title><description><![CDATA[<p>Oder erklären wieso das folgende immer die gleichen Ergebnisse liefert:</p>
<pre><code class="language-cpp">#include &lt;ctime&gt;
#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

int main()
{
    std::srand(std::clock());

    for(int i = 0; i &lt; 1000; ++i)
    {
        std::cout &lt;&lt; std::rand() &lt;&lt; ' ' &lt;&lt; std::endl;
    }

    return 0;
}
</code></pre>
<p>Ich bekomme aus irgendeinem mir unerklärlichen Grund immer die gleichen tausend verschiedenen Zahlen raus. Zudem sind diese tausend verschiedene mir zu wenig verschieden.</p>
<p>Daher wollte ich Boost.Random benutzen, doch die Dokumentation dazu scheint mir miserabel zu sein oder ich versteh einfach kein Wort. Kann mir jemand sagen, wie ich einfach ein paar zufällige Integers mit Boost.Random bekommen kann? Am besten auch positiv und negativ, wenn es geht.</p>
<p>Danke im voraus.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1547659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1547659</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 15 Jul 2008 14:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to [closed&#x2F;solved] Kann mir wer Boost.Random erklären? on Tue, 15 Jul 2008 12:57:35 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::srand(std::clock());
</code></pre>
<p>ahm clock() ist die falsche funktion.</p>
<p>das muss</p>
<pre><code class="language-cpp">std::srand(std::time(null));
</code></pre>
<p>heissen.</p>
<p>clock gibt nur die bisherige programmlaufzeit aus, nicht die aktuelle zeit. Das erklärt, warum du immer dieselben Ergebnisse heraus bekommen hast.</p>
<p>Und wo ist nun *genau* dein Problem mit boost::random? ist doch recht schön erklärt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1547665</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1547665</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 15 Jul 2008 12:57:35 GMT</pubDate></item><item><title><![CDATA[Reply to [closed&#x2F;solved] Kann mir wer Boost.Random erklären? on Tue, 15 Jul 2008 13:14:27 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>ahm clock() ist die falsche funktion.</p>
<p>das muss</p>
<pre><code class="language-cpp">std::srand(std::time(null));
</code></pre>
<p>heissen.</p>
<p>clock gibt nur die bisherige programmlaufzeit aus, nicht die aktuelle zeit. Das erklärt, warum du immer dieselben Ergebnisse heraus bekommen hast.</p>
</blockquote>
<p>Das erklärt so einiges <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Kenne mich zu wenig mit den C-Funktionen aus, noch ein Grund mehr auf die C++ Funktionen, bzw. Boost zu setzen.</p>
<p>otze schrieb:</p>
<blockquote>
<p>Und wo ist nun *genau* dein Problem mit boost::random? ist doch recht schön erklärt.</p>
</blockquote>
<p>Recht schön? Entweder les ich die falsche Dokumentation oder wir haben unterschiedliche Ansichten was schön ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ich sehe drei Dinger in der Dokumentation, eine Schnelleinführung, eine Dokumentation des Konzepts und Code-Referenzen.</p>
<p>Beginnen wir mit der Schnelleinführung, welche nur aus einem Programmcode besteht, der für mich extrem unverständlich ist. Zumindest verstehe ich das Konzept nicht, wie es funktionieren soll.</p>
<p>Also auf zur Dokumentation über das Konzept, welches ich irgendwie nicht verstehe. Ich bekomme irgendwie nicht den Zusammenhang raus, wie ich was mit was kombinieren muss um meine Ergebnisse zu erhalten.</p>
<p>Die Code-Referenz bringt mir dann auch nichts mehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Also ganz einfach, ich versteh das Konzept von Boost.Random nicht.</p>
<p>Danke.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1547684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1547684</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 15 Jul 2008 13:14:27 GMT</pubDate></item><item><title><![CDATA[Reply to [closed&#x2F;solved] Kann mir wer Boost.Random erklären? on Tue, 15 Jul 2008 13:25:44 GMT]]></title><description><![CDATA[<p>Vielleicht hilft dies:</p>
<p><a href="http://www.heise.de/ix/artikel/2008/02/138/" rel="nofollow">http://www.heise.de/ix/artikel/2008/02/138/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1547694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1547694</guid><dc:creator><![CDATA[bladerunner10]]></dc:creator><pubDate>Tue, 15 Jul 2008 13:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to [closed&#x2F;solved] Kann mir wer Boost.Random erklären? on Tue, 15 Jul 2008 13:40:12 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//der Algorithmus (hier der Mersenne Twister Algo)
    boost::mt19937 generator;
    //Gleichverteilte Ganzzahlen zwischen -50 und 50
    boost::uniform_int&lt;int&gt; distrubution(-50,50);
    //der Generator, erzeugt gleichverteilte Ganzahlen -50..50 mit dem MT-Algo
    boost::variate_generator&lt;boost::mt19937, boost::uniform_int&lt;int&gt; &gt; rand(generator, distrubution);

    for(int i = 0; i &lt; 20; ++i)
    {
        std::cout &lt;&lt; rand() &lt;&lt; '\n';
    }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1547702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1547702</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Tue, 15 Jul 2008 13:40:12 GMT</pubDate></item><item><title><![CDATA[Reply to [closed&#x2F;solved] Kann mir wer Boost.Random erklären? on Tue, 15 Jul 2008 14:57:33 GMT]]></title><description><![CDATA[<p>Danke!<br />
Ich weiss zwar nicht wieso, aber irgendwie hat sich der Knopf gelöst und es wurde mir so klar, dass es mir fast peinlich ist überhaupt die Frage gestellt zu haben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Die Sache ist so einfach aufgebaut, aber irgendwie hatte ich es nicht geschnallt.</p>
<p>Hab mir nun daraus meine eigene Random-Klasse (Wrapper) gebaut und das funktioniert alles super perfekt, genau wie ich es wollte. Endlich kann ich meine Whitebox-Tests fortführen.</p>
<pre><code class="language-cpp">//////////////////////////////////////////////////////////////////////////
// CRandom

template&lt;typename TValue&gt;
class CRandom
{
	// Attributes //
private:
	boost::variate_generator&lt;boost::mt19937, boost::uniform_int&lt;TValue&gt;&gt; m_Generator;

	// Constructors &amp; Destructor //
public:
	CRandom(TValue Min, TValue Max)
		: m_Generator(boost::mt19937(), boost::uniform_int&lt;TValue&gt;(Min, Max))
	{ }

	~CRandom() { };

	// Methods //
public:
	TValue get_next_value() { return m_Generator(); };
};
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1547740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1547740</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 15 Jul 2008 14:57:33 GMT</pubDate></item></channel></rss>