<?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[Zufällige Zufallszahlen?]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich hab hier einen Quellcode, den ich größtenteils selber geschrieben hab. Größtenteils bedeutet, dass ich alles bis auf zwei Zeilen selbst geschrieben und auch verstanden habe. Hier der Code:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;cstdlib&gt;
#include&lt;ctime&gt;
using namespace std;

bool doppelte_eintraege(const int zahlen[], const int max)
{
	//Zufallszahlen auf doppelte Einträge vergleichen
	for(int i=0; i&lt;max; i=i+1)
	{
		if(zahlen[i] == zahlen[max])
		{
			return true;
		}
	}

return false;
}

int main()
{
	time_t t;
	srand((unsigned) time(&amp;t));
	const int LOTTOZAHLEN = 6;
	int zahlen[LOTTOZAHLEN];

	//erste Zahl kann ohne Probleme gezogen werden
	zahlen[0] = (rand() % 49) + 1;

	for(int i=1; i&lt;LOTTOZAHLEN; i=i+1)
	{
		do
		{
			zahlen[i] = (rand() % 49) + 1;
		}while(doppelte_eintraege(zahlen, i));
	}

	cout &lt;&lt; endl;
	cout &lt;&lt; &quot;Ihre persoenlichen Lottozahlen: &quot; &lt;&lt; endl;

	//Ausgabe
	for(int i=0; i&lt;LOTTOZAHLEN; i=i+1)
	{
		cout &lt;&lt; zahlen[i] &lt;&lt; endl;
	}

	cout &lt;&lt; endl;
	cout &lt;&lt; endl &lt;&lt; endl;

return 0;
}
</code></pre>
<p>Probleme hab ich nun mit diesen Code-Zeilen:</p>
<pre><code class="language-cpp">time_t t;
srand((unsigned) time(&amp;t));
</code></pre>
<p>Was srand macht ist mir soweit klar, denke ich. Was ich aber nicht verstehe, warum man srand nur am Anfang des Quelltextes deklarieren muss und weshalb mir dann (nur durch die alleinige Deklaration der Funktion srad()) die Funktion rand() dann von der Prozessorzeit abhängige &quot;Zufallszahlen&quot; ausspuckt.</p>
<p>Warum muss man dann nicht einfach srand() zur Erzeugung dieser Zufallszahlen benutzen? Könnt ihr mir das mal erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286731/zufällige-zufallszahlen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 19:08:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286731.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 May 2011 15:56:39 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 15:56:39 GMT]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich hab hier einen Quellcode, den ich größtenteils selber geschrieben hab. Größtenteils bedeutet, dass ich alles bis auf zwei Zeilen selbst geschrieben und auch verstanden habe. Hier der Code:</p>
<pre><code class="language-cpp">#include&lt;iostream&gt;
#include&lt;cstdlib&gt;
#include&lt;ctime&gt;
using namespace std;

bool doppelte_eintraege(const int zahlen[], const int max)
{
	//Zufallszahlen auf doppelte Einträge vergleichen
	for(int i=0; i&lt;max; i=i+1)
	{
		if(zahlen[i] == zahlen[max])
		{
			return true;
		}
	}

return false;
}

int main()
{
	time_t t;
	srand((unsigned) time(&amp;t));
	const int LOTTOZAHLEN = 6;
	int zahlen[LOTTOZAHLEN];

	//erste Zahl kann ohne Probleme gezogen werden
	zahlen[0] = (rand() % 49) + 1;

	for(int i=1; i&lt;LOTTOZAHLEN; i=i+1)
	{
		do
		{
			zahlen[i] = (rand() % 49) + 1;
		}while(doppelte_eintraege(zahlen, i));
	}

	cout &lt;&lt; endl;
	cout &lt;&lt; &quot;Ihre persoenlichen Lottozahlen: &quot; &lt;&lt; endl;

	//Ausgabe
	for(int i=0; i&lt;LOTTOZAHLEN; i=i+1)
	{
		cout &lt;&lt; zahlen[i] &lt;&lt; endl;
	}

	cout &lt;&lt; endl;
	cout &lt;&lt; endl &lt;&lt; endl;

return 0;
}
</code></pre>
<p>Probleme hab ich nun mit diesen Code-Zeilen:</p>
<pre><code class="language-cpp">time_t t;
srand((unsigned) time(&amp;t));
</code></pre>
<p>Was srand macht ist mir soweit klar, denke ich. Was ich aber nicht verstehe, warum man srand nur am Anfang des Quelltextes deklarieren muss und weshalb mir dann (nur durch die alleinige Deklaration der Funktion srad()) die Funktion rand() dann von der Prozessorzeit abhängige &quot;Zufallszahlen&quot; ausspuckt.</p>
<p>Warum muss man dann nicht einfach srand() zur Erzeugung dieser Zufallszahlen benutzen? Könnt ihr mir das mal erklären?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063684</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sun, 15 May 2011 15:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:05:24 GMT]]></title><description><![CDATA[<p>srand() wird (wie auch rand) in der cstdlib deklariert, in Zeile 27 wird die Funktion bloß aufgerufen. Wozu das gut ist?<br />
<a href="http://en.wikipedia.org/wiki/Random_seed" rel="nofollow">http://en.wikipedia.org/wiki/Random_seed</a><br />
<a href="http://www.cplusplus.com/reference/clibrary/cstdlib/srand/" rel="nofollow">http://www.cplusplus.com/reference/clibrary/cstdlib/srand/</a></p>
<p>Und im Magazin gab es auch mal was dazu <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>
<blockquote>
<p>Warum muss man dann nicht einfach srand() zur Erzeugung dieser Zufallszahlen benutzen? Könnt ihr mir das mal erklären?</p>
</blockquote>
<p>srand() setzt den &quot;Samen&quot; für alle danach erzeugten Zufallszahlen. rand() gibt eine Zufallszahl zurück. Was genau verstehst du dabei nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063689</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063689</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 15 May 2011 16:05:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:04:29 GMT]]></title><description><![CDATA[<p>Diese Zufallsgeneratoren spucken keine echten Zufallszahlen aus. Sie spucken bloss möglichst zufällig erscheinende Zahlen aus basierend auf einem Startwert.<br />
Damit nun die Reihenfolge nicht immer die selbe ist musst du das seed mit einem Startwert initialisieren. Man nimmt dafür meistens die Zeit. Du musst nun genau ein mal das Seed initialisieren.<br />
Mit der Funktion srand(..) kannst du das Seed initialisieren. Du rufst eine Funktion auf, du deklarierst srand(..) nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063690</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Sun, 15 May 2011 16:04:29 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:20:53 GMT]]></title><description><![CDATA[<p>Das heißt, also ich rufe srand() in meinem Quelltext nur genau einmal auf, was zur Folge hat, dass mit dem &amp;t im Argument als Startwert ein immer unterschiedlicher Startwert angenommen wird.</p>
<p>Das nachfolgende rand() greift dann auf den (immer) unterscheidlichen Startwert von srand() zu.</p>
<p>Hab ich das jetzt richtig verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063695</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sun, 15 May 2011 16:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:30:49 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<p>Das heißt, also ich rufe srand() in meinem Quelltext nur genau einmal auf, was zur Folge hat, dass mit dem &amp;t im Argument als Startwert ein immer unterschiedlicher Startwert angenommen wird.</p>
<p>Das nachfolgende rand() greift dann auf den (immer) unterscheidlichen Startwert von srand() zu.</p>
<p>Hab ich das jetzt richtig verstanden?</p>
</blockquote>
<p>Ja, der Algorithmus braucht einen Initialwert (Startwert), damit er nicht immer die gleichen &quot;Zufallszahlen&quot; generiert. Dieser Initialwert darf aber natürlich nur einmal gesetzt werden im Programm.<br />
Die Funktion rand() gibt die dann Zahlen zurück, die der Algorithmus berechnet hat, basierend auf dem Startwert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063702</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Sun, 15 May 2011 16:30:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:32:55 GMT]]></title><description><![CDATA[<p>Ok. Ich denke ich hab das dann jetzt verstanden mit dem srand()...</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063703</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sun, 15 May 2011 16:32:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:33:28 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<p>Das heißt, also ich rufe srand() in meinem Quelltext nur genau einmal auf, was zur Folge hat, dass mit dem &amp;t im Argument als Startwert ein immer unterschiedlicher Startwert angenommen wird.</p>
</blockquote>
<p>Bloß, dass bei dir &amp;t immer das gleiche ist, da es nicht die aktuelle Zeit sondern die Adresse einer Variable ist, die die Zeit enthält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063705</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 15 May 2011 16:33:28 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:37:30 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>vip@r schrieb:</p>
<blockquote>
<p>Das heißt, also ich rufe srand() in meinem Quelltext nur genau einmal auf, was zur Folge hat, dass mit dem &amp;t im Argument als Startwert ein immer unterschiedlicher Startwert angenommen wird.</p>
</blockquote>
<p>Bloß, dass bei dir &amp;t immer das gleiche ist, da es nicht die aktuelle Zeit sondern die Adresse einer Variable ist, die die Zeit enthält.</p>
</blockquote>
<p>Ist &amp;t immer das gleiche? Die Variable kann ja bei jedem Programmstart eine unterschiedliche Adresse haben, nicht?</p>
<p>@ vip@r<br />
Kannst das seed mit srand( time(0) ) initialisieren. Ich denke dafür musst du noch &lt;ctime&gt; includen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063708</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Sun, 15 May 2011 16:37:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:46:09 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<p>Ist &amp;t immer das gleiche? Die Variable kann ja bei jedem Programmstart eine unterschiedliche Adresse haben, nicht?</p>
</blockquote>
<p>Mit address space randomization und solchen Scherzchen mag das möglich sein, ansonsten nicht. Fakt ist jedenfalls, dass es nicht das tut, was gemeint ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063714</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063714</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 15 May 2011 16:46:09 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:49:35 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<p>Ist &amp;t immer das gleiche? Die Variable kann ja bei jedem Programmstart eine unterschiedliche Adresse haben, nicht?</p>
</blockquote>
<p>Wenn Du mit &amp;t arbeitest, geht das natürlich auch, solange es bei Dir klappt. Aber beim Kunden klappt's dann nicht. Kommt recht peinlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063716</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 15 May 2011 16:49:35 GMT</pubDate></item><item><title><![CDATA[Reply to Zufällige Zufallszahlen? on Sun, 15 May 2011 16:53:25 GMT]]></title><description><![CDATA[<p>Alles klar. Ich würds ja nie so machen. Hat mich bloss interessiert, ob es theoretisch funktioniert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2063719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2063719</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Sun, 15 May 2011 16:53:25 GMT</pubDate></item></channel></rss>