<?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[Zufallszahlen erzeugen]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich weiß, wie ich generell eine Zufallszahl erzeuge:</p>
<pre><code class="language-cpp">srand(4)
int zahl=rand();
</code></pre>
<p>Nun meine Fragen:</p>
<p>1.) Was bewirkt der Parameter von srand? Wenn ich diesen wir hier konstant lasse, bekomme ich dann nur bestimmte Zufallszahlen?</p>
<p>2.) Ich möchte gerne Zufallszahlen in einem bestimmten Intervall bekommen. Ich habe nun diese Zeile (aus einer Funktion, daher return):</p>
<pre><code class="language-cpp">return (rand() % (ende+1 - start) + start);
</code></pre>
<p>Damit habe ich ein Intervall, wobei ende und start vom Typ int sind. Doch verstehe ich die Syntaxs nicht. Kann mir da jemand helfen? Warum nutzt man hier den Modulooperator? Warum schreibe ich &quot;ende+1-start&quot; und dann wieder &quot;+start&quot;?</p>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249806/zufallszahlen-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 09:05:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249806.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 12 Sep 2009 12:17:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 12:17:56 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich weiß, wie ich generell eine Zufallszahl erzeuge:</p>
<pre><code class="language-cpp">srand(4)
int zahl=rand();
</code></pre>
<p>Nun meine Fragen:</p>
<p>1.) Was bewirkt der Parameter von srand? Wenn ich diesen wir hier konstant lasse, bekomme ich dann nur bestimmte Zufallszahlen?</p>
<p>2.) Ich möchte gerne Zufallszahlen in einem bestimmten Intervall bekommen. Ich habe nun diese Zeile (aus einer Funktion, daher return):</p>
<pre><code class="language-cpp">return (rand() % (ende+1 - start) + start);
</code></pre>
<p>Damit habe ich ein Intervall, wobei ende und start vom Typ int sind. Doch verstehe ich die Syntaxs nicht. Kann mir da jemand helfen? Warum nutzt man hier den Modulooperator? Warum schreibe ich &quot;ende+1-start&quot; und dann wieder &quot;+start&quot;?</p>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776960</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sat, 12 Sep 2009 12:17:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 12:26:47 GMT]]></title><description><![CDATA[<p>Nimm mal an, return rand() gibt eine zufällige Zahl zwischen 0 und 32767 aus. (Dein rand() kann größere Zahlen, ist aber egal.)<br />
Finde mal heraus, was dann die Sünthaxkqs return rand()%10 ausgibt.<br />
Danach ist Dir dann auch der ganze Rest klar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776968</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 12 Sep 2009 12:26:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 12:37:49 GMT]]></title><description><![CDATA[<p>Was den Parameter von srand angeht:</p>
<p>Die Zufallszahlen die rand zurückgibt, sind nicht wirklich zufällig, sondern werden aus dem vorherigen Wert berechnet nach einem bestimmten Schema, so dass die entstehende Zahlenfolge dann wie zufällig aussieht. Der Parameter von srand dient nun dazu, den Anfangswert für die Rechung in rand zu setzen. Also quasi den &quot;vorherigen&quot; Wert wenn du rand das erste Mal benutzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776973</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 12 Sep 2009 12:37:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 12:49:11 GMT]]></title><description><![CDATA[<p>Der Seed-Wert kann, muss aber nicht dem &quot;vorherigen&quot; Wert entsprechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776986</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776986</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 12 Sep 2009 12:49:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 12:52:48 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>: Sünthaxkqs <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <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="😃"
    /></p>
<p>Ja, mir wird der Rest der Divion durch 10 zurückgegeben. Na und! Irgendwie komme ich nicht hinter diese Zeile:</p>
<p>return (rand() % (ende+1 - start) + start);</p>
<p>Könnt Ihr mir bitte die Funktionsweise sagen? Das wäre nett...</p>
<p>Vielen dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776991</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sat, 12 Sep 2009 12:52:48 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 12:53:11 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Der Seed-Wert kann, muss aber nicht dem &quot;vorherigen&quot; Wert entsprechen.</p>
</blockquote>
<p>Es ist aber eine gute Lüge für Leute, die seeds nur oberflächlich verstehen wollen ohne die technischen Details.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776992</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776992</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 12 Sep 2009 12:53:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 12:54:15 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/106">@volkard</a>: Sünthaxkqs <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <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="😃"
    /></p>
<p>Ja, mir wird der Rest der Divion durch 10 zurückgegeben. Na und! Irgendwie komme ich nicht hinter diese Zeile:</p>
<p>return (rand() % (ende+1 - start) + start);</p>
<p>Könnt Ihr mir bitte die Funktionsweise sagen? Das wäre nett...</p>
<p>Vielen dank<br />
lg, freakC++</p>
</blockquote>
<p>Denk doch mal nach: Wenn du modulo 10 rechnest, welche Werte können dann als Ergebnis herauskommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776994</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776994</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 12 Sep 2009 12:54:15 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 13:01:21 GMT]]></title><description><![CDATA[<p>Wie schon gesagt...es kommt der Rest raus, der bei einer Division durch 10 entsteht, also immer die letzte Ziffer der Zahl. Aber was bringt mir das bei dieser Zeile:</p>
<p>return (rand() % (ende+1 - start) + start);</p>
<p>Irgendwie stehe ich voll aufm Schlauch! Jetzt macht es nicht so spannend! :p</p>
<p>lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1777001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1777001</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sat, 12 Sep 2009 13:01:21 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 13:06:50 GMT]]></title><description><![CDATA[<p>Ja guck dir einfach die Teile an, guck dir an was die Teile bedeuten, dann ist sofort klar was es soll.</p>
<p>(ende + 1 - start) ist z.b. was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1777007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1777007</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 12 Sep 2009 13:06:50 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 13:07:03 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>Wie schon gesagt...es kommt der Rest raus, der bei einer Division durch 10 entsteht, also immer die letzte Ziffer der Zahl. Aber was bringt mir das bei dieser Zeile:</p>
<p>return (rand() % (ende+1 - start) + start);</p>
<p>Irgendwie stehe ich voll aufm Schlauch! Jetzt macht es nicht so spannend! :p</p>
<p>lg, freakC++</p>
</blockquote>
<p>Setz doch einfach Zahlen ein:</p>
<p>rand() liefterte beispielsweise 160</p>
<p>`start = 5</p>
<p>ende = 100</p>
<p>(160 % (100+1 - 5) + 5)</p>
<p>= (160 % 96) + 5</p>
<p>= 64 + 5</p>
<p>= 69`</p>
<p>Die Zufallszahl liegt also im Intervall [5, 100]</p>
<p>Das ist alles...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1777008</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1777008</guid><dc:creator><![CDATA[asdasd]]></dc:creator><pubDate>Sat, 12 Sep 2009 13:07:03 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 13:09:53 GMT]]></title><description><![CDATA[<p>mmh...und was soll die +1?</p>
<p>lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1777012</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1777012</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sat, 12 Sep 2009 13:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 13:13:07 GMT]]></title><description><![CDATA[<p>freakC++ schrieb:</p>
<blockquote>
<p>Wie schon gesagt...es kommt der Rest raus, der bei einer Division durch 10 entsteht, also immer die letzte Ziffer der Zahl.</p>
</blockquote>
<p>Denk nicht so sehr im Zehnersystem! Wenn du irgendeine Zahl modulo X rechnest, können als Ergebnis nur Werte zwischen 0 und X (inklusive 0 avber exklusive <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f635.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--dizzy_face"
      title="X)"
      alt="😵"
    /> herauskommen. Das ist der ganze Trick hier.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1777015</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1777015</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 12 Sep 2009 13:13:07 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 13:19:01 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>freakC++ schrieb:</p>
<blockquote>
<p>Wie schon gesagt...es kommt der Rest raus, der bei einer Division durch 10 entsteht, also immer die letzte Ziffer der Zahl.</p>
</blockquote>
<p>Denk nicht so sehr im Zehnersystem! Wenn du irgendeine Zahl modulo X rechnest, können als Ergebnis nur Werte zwischen 0 und X (inklusive 0 avber exklusive <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f635.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--dizzy_face"
      title="X)"
      alt="😵"
    /> herauskommen. Das ist der ganze Trick hier.</p>
</blockquote>
<p>Genau, und damit sollte die Formel dann klar sein. Nochmal mein Beispiel:<br />
<code>(160 % (100+1 - 5) + 5)</code></p>
<p>= <strong>(160 % 96)</strong> + 5<br />
Aus der generierten Zufallszahl wird mit Modulo eine Zahl zwischen 0 und 95 ermittelt.</p>
<p>= 64 <strong>+ 5</strong></p>
<p>Da der Intervall, aber zwischen 5 und 100 liegt wird noch 5 dazuaddiert.</p>
<p>Du hast also nun definitiv eine Zahl zwischen 5 und 100.</p>
<p>= 69</p>
<p>In diesem Fall 69.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1777018</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1777018</guid><dc:creator><![CDATA[asdasd]]></dc:creator><pubDate>Sat, 12 Sep 2009 13:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahlen erzeugen on Sat, 12 Sep 2009 13:42:12 GMT]]></title><description><![CDATA[<p>Achso...ja dann wird mir alles klar! Super <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Vielen Dank für eure Hilfe<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1777039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1777039</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Sat, 12 Sep 2009 13:42:12 GMT</pubDate></item></channel></rss>