<?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[srand funktioniert nicht]]></title><description><![CDATA[<p>Versuche ein Program zu schreiben, das 100 Würfe einer Münze simulieren soll.<br />
danach soll das Program anzeifgen, wie viel ie eine und wieviel die andere Seite &quot;geworfen&quot; wurde</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;time.h&gt;

using std::cout;
using std::cin;
using std::endl;
using std::rand;
using std::srand;

  bool flip(); //simuliert einen einzelnen Wurf der Münze

   int main() {

	   int side2 = 0, side1 = 0;

	   for (int i = 1; i &lt;= 100; i++) {
		   if (flip() == 1) side1++;
		   if (flip() != 1) side2++;
	   }

	   cout &lt;&lt; &quot;Seite 1: &quot;;
	   cout &lt;&lt; side1;
	   cout &lt;&lt; endl &lt;&lt; &quot;Seite 2: &quot;;
	   cout &lt;&lt; side2;
	   cin &gt;&gt; side1;

   }

   bool flip(){

	   int a;

	   srand(time(NULL));
	   a = 1 + rand() % 2 ;
	   if (a == 1) return 1;
	   if (a == 0) return 0;

   }
</code></pre>
<p>Da Programm sollte teoretisch ungefär 50 Würfe von jeder Seite machen, doch es zeigt an dass die erste Seite 100 mal , die andere 0 mal geworfen wird!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/276737/srand-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 06:07:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/276737.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 07 Nov 2010 18:08:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to srand funktioniert nicht on Sun, 07 Nov 2010 18:08:07 GMT]]></title><description><![CDATA[<p>Versuche ein Program zu schreiben, das 100 Würfe einer Münze simulieren soll.<br />
danach soll das Program anzeifgen, wie viel ie eine und wieviel die andere Seite &quot;geworfen&quot; wurde</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;
#include &lt;time.h&gt;

using std::cout;
using std::cin;
using std::endl;
using std::rand;
using std::srand;

  bool flip(); //simuliert einen einzelnen Wurf der Münze

   int main() {

	   int side2 = 0, side1 = 0;

	   for (int i = 1; i &lt;= 100; i++) {
		   if (flip() == 1) side1++;
		   if (flip() != 1) side2++;
	   }

	   cout &lt;&lt; &quot;Seite 1: &quot;;
	   cout &lt;&lt; side1;
	   cout &lt;&lt; endl &lt;&lt; &quot;Seite 2: &quot;;
	   cout &lt;&lt; side2;
	   cin &gt;&gt; side1;

   }

   bool flip(){

	   int a;

	   srand(time(NULL));
	   a = 1 + rand() % 2 ;
	   if (a == 1) return 1;
	   if (a == 0) return 0;

   }
</code></pre>
<p>Da Programm sollte teoretisch ungefär 50 Würfe von jeder Seite machen, doch es zeigt an dass die erste Seite 100 mal , die andere 0 mal geworfen wird!!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1976827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1976827</guid><dc:creator><![CDATA[gagarin]]></dc:creator><pubDate>Sun, 07 Nov 2010 18:08:07 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Sun, 07 Nov 2010 18:09:37 GMT]]></title><description><![CDATA[<p>srand nur EINMAL im programm aufrufen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1976829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1976829</guid><dc:creator><![CDATA[asdfasd]]></dc:creator><pubDate>Sun, 07 Nov 2010 18:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Sun, 07 Nov 2010 20:08:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if (a == 1) return 1; 
if (a == 0) return 0;
</code></pre>
<p>Man kanns auch kompliziert lösen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1976882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1976882</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 07 Nov 2010 20:08:56 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Sun, 07 Nov 2010 21:19:22 GMT]]></title><description><![CDATA[<p>besser wäre es so</p>
<pre><code class="language-cpp">bool arr[2] = { false, true };

bool flip(){
    //...
    if(a==0) return arr[0];
    if(a==1) return arr[1];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1976950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1976950</guid><dc:creator><![CDATA[asdfasd]]></dc:creator><pubDate>Sun, 07 Nov 2010 21:19:22 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Sun, 07 Nov 2010 21:34:07 GMT]]></title><description><![CDATA[<p>a = 1 + rand() % 2 ; kann nie 0 werden...</p>
<p>greetz KN4CK3R</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1976957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1976957</guid><dc:creator><![CDATA[KN4CK3R]]></dc:creator><pubDate>Sun, 07 Nov 2010 21:34:07 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Sun, 07 Nov 2010 21:40:17 GMT]]></title><description><![CDATA[<p>Optimierte Version von flip:</p>
<pre><code class="language-cpp">bool flip()
{
    static bool bRandomize = true;

    if(bRandomize)
    {
        srand((unsigned)time(NULL));
        bRandomize = false;
    }

    return rand()%2;
}
</code></pre>
<p>MfG, Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1976959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1976959</guid><dc:creator><![CDATA[Jochen S.]]></dc:creator><pubDate>Sun, 07 Nov 2010 21:40:17 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Mon, 08 Nov 2010 00:01:28 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5675">@Jochen</a> S.<br />
srand() so in einer Funktion zu &quot;verstecken&quot;, würde ich jetzt nicht für gut befinden. Dadurch wird die Funktion für Simulationen ungeeignet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977012</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Mon, 08 Nov 2010 00:01:28 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Mon, 08 Nov 2010 00:50:41 GMT]]></title><description><![CDATA[<p>Mitleid schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5675">@Jochen</a> S.<br />
srand() so in einer Funktion zu &quot;verstecken&quot;, würde ich jetzt nicht für gut befinden. Dadurch wird die Funktion für Simulationen ungeeignet.</p>
</blockquote>
<p>\<br />
Ja, das fuehle ich auch irgendwie. Aber wie wuerde man es am besten machen+_)(<em>#$$|&quot;}{:+!@#$$%^&amp;</em>( finde das Frageyeichen nicht )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977014</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 08 Nov 2010 00:50:41 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Mon, 08 Nov 2010 02:50:04 GMT]]></title><description><![CDATA[<p>Wenn ich das richtig im Kopf habe, befindet sich das Fragezeichen auf einer amerikanischen Tastatur dort, wo die deutsche den Unterstrich (_) hat.</p>
<p>Ansonsten...spricht etwas dagegen, srand einmal am Anfang der main aufzurufen?</p>
<p>Falls rand() vor main gebraucht wird, ginge etwas in der Art:</p>
<pre><code class="language-cpp">int seed_rng() {
  std::srand(std::time(0));
  return 1;
}

static int const rng_seeded = seed_rng();
</code></pre>
<p>...aber dann auf Initialisierungsreihenfolge achten! Im Extremfall</p>
<pre><code class="language-cpp">struct rng {
  rng() { std::srand(std::time(0)); }

  int operator()() const { return std::rand(); }

  static rng const &amp;instance() {
    static rng const me;
    return me;
  }
};

int get_random_number() { return rng::instance()(); }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1977022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977022</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Mon, 08 Nov 2010 02:50:04 GMT</pubDate></item><item><title><![CDATA[Reply to srand funktioniert nicht on Mon, 08 Nov 2010 12:39:49 GMT]]></title><description><![CDATA[<p>Ja, so sehe ich das auch. Auf jeden Fall sollte dem Benutzer die Reproduzierbarkeit der Zahlenfolge als Möglichkeit erhalten bleiben. D.h. ich würde davon absehen in eigenen Funktionen den Zufallsgenerator mal einfach so neu zu initialisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1977234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1977234</guid><dc:creator><![CDATA[Mitleid]]></dc:creator><pubDate>Mon, 08 Nov 2010 12:39:49 GMT</pubDate></item></channel></rss>