<?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[Zufallszahl generieren.]]></title><description><![CDATA[<p>Hallo C++ Community,</p>
<p>Ich bin recht neu und möchte wissen wie ich Zufallszahlen generieren lassen kann.<br />
Diesen Script habe ich aus dem Internet.<br />
Nun zu meiner Frage, was kann ich alles mit diesem Script machen also z.B. in dem Klammern bei rand() alles schreiben? Und was hat es mit srand (time(NULL)) auf sich? Was bedeuten diese Wörter übersetzt.<br />
Wie kann ich z.B. wenn eine bestimme Zahl generiert wird einen Satz ( Handlung ) ausgeben lassen? Und wie bekomme ich das so hin das nur die Zahlen 1 - 3 generiert werden?</p>
<pre><code>#include &lt;iostream&gt;

int main ()
{

  srand (time(NULL));
  std::cout &lt;&lt; &quot;Random number:&quot; &lt;&lt; rand()%100 &lt;&lt; std::endl;

  system(&quot;PAUSE&quot;);
  return 0;
}
</code></pre>
<p>Ich bedanke mich für jede hilfreiche Antwort!</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/324530/zufallszahl-generieren</link><generator>RSS for Node</generator><lastBuildDate>Tue, 14 Jul 2026 00:11:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324530.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 20 Mar 2014 18:31:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 18:35:41 GMT]]></title><description><![CDATA[<p>Hallo C++ Community,</p>
<p>Ich bin recht neu und möchte wissen wie ich Zufallszahlen generieren lassen kann.<br />
Diesen Script habe ich aus dem Internet.<br />
Nun zu meiner Frage, was kann ich alles mit diesem Script machen also z.B. in dem Klammern bei rand() alles schreiben? Und was hat es mit srand (time(NULL)) auf sich? Was bedeuten diese Wörter übersetzt.<br />
Wie kann ich z.B. wenn eine bestimme Zahl generiert wird einen Satz ( Handlung ) ausgeben lassen? Und wie bekomme ich das so hin das nur die Zahlen 1 - 3 generiert werden?</p>
<pre><code>#include &lt;iostream&gt;

int main ()
{

  srand (time(NULL));
  std::cout &lt;&lt; &quot;Random number:&quot; &lt;&lt; rand()%100 &lt;&lt; std::endl;

  system(&quot;PAUSE&quot;);
  return 0;
}
</code></pre>
<p>Ich bedanke mich für jede hilfreiche Antwort!</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390016</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390016</guid><dc:creator><![CDATA[Chechen65]]></dc:creator><pubDate>Thu, 20 Mar 2014 18:35:41 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 18:36:44 GMT]]></title><description><![CDATA[<p>Gibt es einen Script der Zahlen generiert ohne rand etc. zu benutzen?<br />
Sry für die ganzen Fragen <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2390017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390017</guid><dc:creator><![CDATA[Chechen65]]></dc:creator><pubDate>Thu, 20 Mar 2014 18:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 19:04:37 GMT]]></title><description><![CDATA[<p>Chechen65 schrieb:</p>
<blockquote>
<p>Gibt es einen Script der Zahlen generiert ohne rand etc. zu benutzen?</p>
</blockquote>
<p>Definiere etc! Rand und ihre Artverwandten sind natürlich irgendwie implementiert. Wer dumm genug ist kann das auch selber machen. Ansonsten: wie währe es mit Dokumentation lesen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390024</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390024</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 20 Mar 2014 19:04:37 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 19:15:48 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Definiere etc! Rand und ihre Artverwandten sind natürlich irgendwie implementiert. Wer dumm genug ist kann das auch selber machen. Ansonsten: wie währe es mit Dokumentation lesen?</p>
</blockquote>
<p>Gib mir doch eine nützliche Link wenn du dir Schreibarbeit ersparen willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390029</guid><dc:creator><![CDATA[Chechen65]]></dc:creator><pubDate>Thu, 20 Mar 2014 19:15:48 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 19:20:11 GMT]]></title><description><![CDATA[<p>Chechen65 schrieb:</p>
<blockquote>
<p>Gibt es einen Script der Zahlen generiert ohne rand etc. zu benutzen?<br />
Sry für die ganzen Fragen <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>
</blockquote>
<p>Ja!</p>
<pre><code class="language-cpp">#include &lt;random&gt;

std::random_device rd;
std::cout &lt;&lt; rd() &lt;&lt; std::endl;

// oder
// http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2390031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390031</guid><dc:creator><![CDATA[Jodocus]]></dc:creator><pubDate>Thu, 20 Mar 2014 19:20:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 19:54:39 GMT]]></title><description><![CDATA[<p>Stehen die Antworten auf deine Fragen nicht in deinen Büchern, die du ja hast (<a href="http://www.c-plusplus.net/forum/p2390012#2390012" rel="nofollow">http://www.c-plusplus.net/forum/p2390012#2390012</a>)<br />
Wenn nein, schmeiss sie weg. Wenn doch, dann lies sie gründlich durch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390041</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 20 Mar 2014 19:54:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 20:26:11 GMT]]></title><description><![CDATA[<p><a href="http://en.cppreference.com/w/" rel="nofollow">http://en.cppreference.com/w/</a></p>
<pre><code>std::mt19937 create_seeded_rng() 
{ 
    std::random_device rd; 
    std::array&lt;std::mt19937::result_type, std::mt19937::state_size&gt; seed_data; 
    std::generate(seed_data.begin(), seed_data.end(), std::ref(rd)); 
    std::seed_seq seq(seed_data.begin(), seed_data.end()); 
    return std::mt19937(seq); 
} 

int main() 
{ 
    std::mt19937 rng = create_seeded_rng(); 
    std::uniform_int_distribution&lt;int&gt; dist(0, 100);

    for (unsigned i = 0; i != 100; ++i) 
        std::cout &lt;&lt; dist(rng) &lt;&lt; '\n'; 
}
</code></pre>
<p>Gibt &quot;zufällige&quot; Zahlen zwischen 0 und 100 aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390047</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 20 Mar 2014 20:26:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 20:37:18 GMT]]></title><description><![CDATA[<pre><code>std::mt19937 create_seeded_rng() 
{ 
    std::random_device rd; 
    std::array&lt;std::mt19937::result_type, std::mt19937::state_size&gt; seed_data; 
    std::generate(seed_data.begin(), seed_data.end(), std::ref(rd)); 
    std::seed_seq seq(seed_data.begin(), seed_data.end()); 
    return std::mt19937(seq); 
} 

int main() 
{ 
    std::mt19937 rng = create_seeded_rng(); 
    std::uniform_int_distribution&lt;int&gt; dist(0, 100);

    for (unsigned i = 0; i != 100; ++i) 
        std::cout &lt;&lt; dist(rng) &lt;&lt; '\n'; 
}
</code></pre>
<p>Damit kann ich nichts anfangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390049</guid><dc:creator><![CDATA[Chechen65]]></dc:creator><pubDate>Thu, 20 Mar 2014 20:37:18 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 20:43:54 GMT]]></title><description><![CDATA[<p>ist Chechen65 der neue frühlingstroll? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2390051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390051</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Thu, 20 Mar 2014 20:43:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 21:01:05 GMT]]></title><description><![CDATA[<p>Jetzt siehst du mal den Unterschied zwischen <em>C mit cout</em> (das Programm das du gepostet hast) und modernen C++.</p>
<p>Hast du den Link aus der ersten Zeile des Posts von cooky451 verfolgt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390055</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 20 Mar 2014 21:01:05 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 22:17:13 GMT]]></title><description><![CDATA[<p>Ich weis nicht was euer Problem ist <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Man kann einfach keine normal Antwort hier erwarten.</p>
<p>Wenn ich sage das ich ein Anfänger bin. Dann muss man damit rechnen das ich nicht mit so einem Script klar komme.</p>
<p>Ich schaue mir gerade die Seite an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390069</guid><dc:creator><![CDATA[Chechen65]]></dc:creator><pubDate>Thu, 20 Mar 2014 22:17:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Thu, 20 Mar 2014 22:23:33 GMT]]></title><description><![CDATA[<p>DirkB schrieb:</p>
<blockquote>
<p>Jetzt siehst du mal den Unterschied zwischen <em>C mit cout</em> (das Programm das du gepostet hast) und modernen C++.</p>
</blockquote>
<p>Jo, 2 Zeilen C == 17 Zeilen C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390071</guid><dc:creator><![CDATA[unterscheider]]></dc:creator><pubDate>Thu, 20 Mar 2014 22:23:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 06:07:43 GMT]]></title><description><![CDATA[<p>unterscheider schrieb:</p>
<blockquote>
<p>DirkB schrieb:</p>
<blockquote>
<p>Jetzt siehst du mal den Unterschied zwischen <em>C mit cout</em> (das Programm das du gepostet hast) und modernen C++.</p>
</blockquote>
<p>Jo, 2 Zeilen C == 17 Zeilen C++.</p>
</blockquote>
<p>Genau das hab ich mit auch gedacht.<br />
Modernes C++ macht alles komplexer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390092</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 21 Mar 2014 06:07:43 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 06:15:58 GMT]]></title><description><![CDATA[<p>Vereinfachen wir das mal.</p>
<pre><code>int main()
{
    std::mt19937 rng(time(NULL));//initialisiere einen Zufallszahlengenerator mit namen rng mit dem seed der aktuellen zeit.
    std::uniform_int_distribution&lt;int&gt; dist(0, 100);//dist stellt gleichverteilte Zufallszahlen zwischen 0 und 100 dar. Aufpassen: die 100 ist auch drin.

    for (unsigned i = 0; i != 100; ++i)
        std::cout &lt;&lt; dist(rng) &lt;&lt; '\n';//benutze den rng um eine Zufallszahl zwischen 0 und 100 zu erzeugen.
}
</code></pre>
<p>Der Rest von cooky war so Profi zeugs, welches die meisten Leute nicht brauchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390093</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 21 Mar 2014 06:15:58 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 06:15:27 GMT]]></title><description><![CDATA[<p>Chechen65 schrieb:</p>
<blockquote>
<p>Und wie bekomme ich das so hin das nur die Zahlen 1 - 3 generiert werden?</p>
</blockquote>
<p>rand()%3 ergibt Zahlen 0-2<br />
rand()%3+1 ergibt Zahlen 1-3</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390094</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 21 Mar 2014 06:15:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 06:16:47 GMT]]></title><description><![CDATA[<p>als würde man das so direkt gegenüber stellen können...<br />
die zufallszahlen aus dem mersenne twister sind viel besser als die mit einem kongruenzgenerator + modulo. wenn man monte carlo simulationen macht, dann wird man das schon merken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390095</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 21 Mar 2014 06:16:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 06:23:14 GMT]]></title><description><![CDATA[<p>asfdlol schrieb:</p>
<blockquote>
<p>als würde man das so direkt gegenüber stellen können...<br />
die zufallszahlen aus dem mersenne twister sind viel besser als die mit einem kongruenzgenerator + modulo. wenn man monte carlo simulationen macht, dann wird man das schon merken.</p>
</blockquote>
<p>Nö, eigentlich nicht. Wer an die Ausnahmen gerät, der wird eh schon seinen Lieblingsgenerator aussuchen gefunden haben.</p>
<p>Ich denke nicht, daß es schon polizeilich verboten wäre, daß Chechen65 und ich gerne rand() benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390096</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 21 Mar 2014 06:23:14 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 06:37:49 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>asfdlol schrieb:</p>
<blockquote>
<p>als würde man das so direkt gegenüber stellen können...<br />
die zufallszahlen aus dem mersenne twister sind viel besser als die mit einem kongruenzgenerator + modulo. wenn man monte carlo simulationen macht, dann wird man das schon merken.</p>
</blockquote>
<p>Nö, eigentlich nicht. Wer an die Ausnahmen gerät, der wird eh schon seinen Lieblingsgenerator aussuchen gefunden haben.</p>
<p>Ich denke nicht, daß es schon polizeilich verboten wäre, daß Chechen65 und ich gerne rand() benutzen.</p>
</blockquote>
<p>nein, verboten ist es logisch nicht, lol.<br />
du nutzt direkt rand() für <s>alle</s> viele (edit 3, zu doof das geschriebene richtig zu interpretieren) anwendungen? wusste ich nicht. ich glaubte mal aus einem anderen thread aufgeschnappt zu haben, dass du eine modifizierte multiply-with-carry-version nimmst.</p>
<p>edit: ich wollte mich nur gegen die aussage wehren, dass c++ sinnlos verkompiziert. dabei bieten die c++11 prngs viel mehr möglichkeiten.</p>
<p>edit 2: in spielen oder so was nutze ich auch rand(), gar keine frage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390097</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Fri, 21 Mar 2014 06:37:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 06:37:11 GMT]]></title><description><![CDATA[<p>DirkB schrieb:</p>
<blockquote>
<p>Jetzt siehst du mal den Unterschied zwischen <em>C mit cout</em> (das Programm das du gepostet hast) und modernen C++.<br />
Hast du den Link aus der ersten Zeile des Posts von cooky451 verfolgt?</p>
</blockquote>
<p>Der ist in dem Kontext ungefähr so sinnvoll wie</p>
<p>&quot;<br />
Ich hab Die mal eine Zusammenstellung der wichtigsten Buchstaben gesucht, damit kannste Dir die richtigen Antworten dann selber zusammenbauen: <a href="http://us.123rf.com/400wm/400/400/artenot/artenot0909/artenot090900131/5521213-isolated-cartoon-color-plasticine-alphabet-on-a-white-background.jpg" rel="nofollow">http://us.123rf.com/400wm/400/400/artenot/artenot0909/artenot090900131/5521213-isolated-cartoon-color-plasticine-alphabet-on-a-white-background.jpg</a><br />
&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390098</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 21 Mar 2014 06:37:11 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 06:50:07 GMT]]></title><description><![CDATA[<p>asfdlol schrieb:</p>
<blockquote>
<p>du nutzt direkt rand() für alle anwendungen?</p>
</blockquote>
<p>Nicht für alle.</p>
<p>asfdlol schrieb:</p>
<blockquote>
<p>ich glaubte mal aus einem anderen thread aufgeschnappt zu haben, dass du eine modifizierte multiply-with-carry-version nimmst.</p>
</blockquote>
<p>Jo, sobald rand nicht mehr reicht.</p>
<p>asfdlol schrieb:</p>
<blockquote>
<p>edit 2: in spielen oder so was nutze ich auch rand(), gar keine frage.</p>
</blockquote>
<p>Genau, meine ich doch. Gut zu wissen, daß im Standard-C++ auch die Kanonen zu finden sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390101</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 21 Mar 2014 06:50:07 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 08:53:36 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Jo, sobald rand nicht mehr reicht.</p>
</blockquote>
<p>Also immer.</p>
<p>Ich glaube ihr würdet <code>rand</code> auch benutzen, wenn das so implementiert wäre:</p>
<pre><code class="language-cpp">int rand() { return 42; }
</code></pre>
<p>Liefert ja auch eine zufällig ausgewählte Zahl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390143</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 21 Mar 2014 08:53:36 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 09:16:47 GMT]]></title><description><![CDATA[<p>Das Problem ist doch eher, dass es in C++ keine Funktion gibt, um direkt eine gleichverteilte Zufallszahl (Ganz- oder Fliesskommazahl) in einem beliebigen Intervall zu erzeugen. Man muss dazu jeweils die Distributions und Engines nehmen, teilweise braucht man sie aber gar nicht. Für C++14 wurde daher auch <code>std::pick_a_number()</code> <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3742.pdf" rel="nofollow">vorgeschlagen</a>.</p>
<p><code>rand() % anzahl</code> hat den entscheidenden Nachteil, dass die Gleichverteilung kaputt ist. Da könnte <code>rand()</code> selbst noch so gut implementiert sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390151</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 21 Mar 2014 09:16:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 11:10:35 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>volkard schrieb:</p>
<blockquote>
<p>Jo, sobald rand nicht mehr reicht.</p>
</blockquote>
<p>Also immer.</p>
</blockquote>
<p>Also fast nie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390170</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 21 Mar 2014 11:10:35 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 11:12:52 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p><code>rand() % anzahl</code> hat den entscheidenden Nachteil, dass die Gleichverteilung kaputt ist. Da könnte <code>rand()</code> selbst noch so gut implementiert sein.</p>
</blockquote>
<p>Dieser &quot;entscheidende&quot; Nachteil hat bei mir noch nie dazu geführt, daß der Benutzer den &quot;Zufall&quot; vorhersehen konnte oder daß die Monster eine sichtbare Tendenz dazu hatten, sich am linken Bildschirmrand aufzuhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390171</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 21 Mar 2014 11:12:52 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 14:42:55 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Das Problem ist doch eher, dass es in C++ keine Funktion gibt, um direkt eine gleichverteilte Zufallszahl (Ganz- oder Fliesskommazahl) in einem beliebigen Intervall zu erzeugen. Man muss dazu jeweils die Distributions und Engines nehmen, teilweise braucht man sie aber gar nicht. Für C++14 wurde daher auch <code>std::pick_a_number()</code> <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3742.pdf" rel="nofollow">vorgeschlagen</a>.</p>
</blockquote>
<p>So etwas gehört nicht in den Standard. Die Bandbreite der möglichen Implementationen so einer Funktion würde dazu führen, dass sie für jeden speziellen Zweck nutzlos wäre.<br />
Es gibt diese Möglichkeiten:<br />
- Naiv wie <code>rand</code> . Schnelle, aber nutzlose Ergebnisse.<br />
- Mit Pseudozufall wie zum Beispiel Mersenne-Twister. Der Standard wird den Algorithmus nicht vorschreiben. Je nach tatsächlich verwendetem Algorithmus kann das zu langsam werden für viele Anwendungen. Der Punkt ist, dass ich als Benutzer keine Ahnung habe wie lange die Funktion auf der CPU herumeiern könnte. -&gt; Energieverschwendung.<br />
- Zufall. Benötigt einen Systemaufruf oder eine spezielle Hardware-Instruktion. Der Systemaufruf kann zu teuer sein. Die Instruktion kann Marke NSA sein und die meisten Prozessoren haben die noch gar nicht.</p>
<p>Es gibt keinen universellen Zufallsgenerator. In jedem wichtigen Programm wird diese Funktion also von vornherein verboten sein und man wird bewusst die Algorithmen je nach Anforderung wählen. In einer Hobby-Spielerei kann man sich die Funktion einfach selbst zusammenkloppen.</p>
<p>Das Implementierungsbeispiel im Proposal ist obendrein auch noch falsch, weil nicht threadsafe.<br />
Selbst bei korrekter Implementierung würde der globale Pseudozufallsgenerator zu sicherheitsrelevanten Defekten führen. Implementierung A liefert Zufall; Programmierer verlassen sich darauf; Programmierer machen Crypto damit; Implementierung B liefert Pseudozufall; Programmierer portieren 1:1 von A nach B; fail.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390187</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 21 Mar 2014 14:42:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl generieren. on Fri, 21 Mar 2014 14:39:48 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>- Mit Pseudozufall wie Mersenne-Twister. Je nach verwendetem Algorithmus kann das zu langsam werden für viele Anwendungen. Der Punkt ist, dass ich als Benutzer keine Ahnung habe wie lange die Funktion auf der CPU herumeiern könnte. -&gt; Energieverschwendung.</p>
</blockquote>
<p>Was heisst hier &quot;je nach verwendetem Algorithmus&quot;? Der Algorithmus für den Mersenne-Twister ist genau definiert. (Ja, die default_random_engine ist unnötig.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2390188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2390188</guid><dc:creator><![CDATA[mehr senn]]></dc:creator><pubDate>Fri, 21 Mar 2014 14:39:48 GMT</pubDate></item></channel></rss>