<?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[Keine doppelten Werte generieren?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich erzeuge mir zufällige Werte und will aber, dass keine Werte doppelt auftauchen. Deswegen speichere ich mir in einer Liste, welche Werte bereits existieren. Jetzt kann ja das Problem auftauchen, dass irgendwann alle möglichen Werte schonmal erzeugt wurden. Dann wär auch ein doppelter Wert OK, nur wie programmiert man das am elegantesten?</p>
<pre><code class="language-cpp">Wert v = ZufallsWert();

int cnt = 0;
while( istInListe(v) &amp;&amp; cnt &lt;= GRENZE) {
     v = ZufallsWert();
     ++cnt;
}
</code></pre>
<p>Oder wie würdet ihr das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274231/keine-doppelten-werte-generieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 18:53:16 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274231.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Sep 2010 07:40:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Keine doppelten Werte generieren? on Wed, 22 Sep 2010 07:40:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich erzeuge mir zufällige Werte und will aber, dass keine Werte doppelt auftauchen. Deswegen speichere ich mir in einer Liste, welche Werte bereits existieren. Jetzt kann ja das Problem auftauchen, dass irgendwann alle möglichen Werte schonmal erzeugt wurden. Dann wär auch ein doppelter Wert OK, nur wie programmiert man das am elegantesten?</p>
<pre><code class="language-cpp">Wert v = ZufallsWert();

int cnt = 0;
while( istInListe(v) &amp;&amp; cnt &lt;= GRENZE) {
     v = ZufallsWert();
     ++cnt;
}
</code></pre>
<p>Oder wie würdet ihr das machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1955756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1955756</guid><dc:creator><![CDATA[dopplerEffekt]]></dc:creator><pubDate>Wed, 22 Sep 2010 07:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to Keine doppelten Werte generieren? on Wed, 22 Sep 2010 08:04:13 GMT]]></title><description><![CDATA[<p>Dann fängst Du einfach wieder von vorne an (leere Liste).</p>
<p>Statt einer &quot;Liste&quot; könntest Du auch ein &quot;Set&quot; benutzen. Das Prüfen, ob ein bestimmtes Element vorhanden ist, läuft mit einem std::set schneller.</p>
<p>Wenn Du aber wirklich annähernd so viele Zahlen generieren willst, wie es Möglichkeiten gibt, wäre eine zufällige Permutation geeigneter, da Du sonst für eine Ziehungen evtl relativ viele Versuche brauchst. Die zufällige Permutation könnte man komplett im Speicher generieren (also einen vektor anlegen, mit allen möglichen Werten füllen und zufällig permutieren) oder sogar &quot;prozedural&quot; erzeugen (geht in die Richtung Kryptographie; denn das, was AES und co machen, sind auch nur &quot;große Permutationen&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1955764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1955764</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 22 Sep 2010 08:04:13 GMT</pubDate></item><item><title><![CDATA[Reply to Keine doppelten Werte generieren? on Wed, 22 Sep 2010 08:29:20 GMT]]></title><description><![CDATA[<p>Dazu gab´s doch unlängst einen Thread zu ähnlicher Thematik...</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-272111-and-postdays-is-0-and-postorder-is-asc-and-start-is-0.html" rel="nofollow">Lottozahlen</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1955775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1955775</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 22 Sep 2010 08:29:20 GMT</pubDate></item></channel></rss>