<?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[+1 oder -1 zufällig wählen]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann man die Zahlen +1 oder -1 zufällig bestimmen lassen (nicht die 0 dazwischen, quasi ein Münzwurf)</p>
<p>Ich kenne:</p>
<pre><code>rand() % 5
</code></pre>
<p>für eine Zahl wischen 0 und 5.</p>
<p>oder</p>
<pre><code>rand() % 10 + 1
</code></pre>
<p>für eine Zahl zwischen 1 und 10.</p>
<p>Aber ich komm nicht drauf und finde nix wie ich nur zwischen -1 und 1 wählen lasse.</p>
<p>Hoffe ihr habt ein Tipp,</p>
<p>lg</p>
<p>Ollowain</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/330307/1-oder-1-zufällig-wählen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 03 Jul 2026 11:35:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/330307.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 02 Jan 2015 19:38:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 19:38:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>wie kann man die Zahlen +1 oder -1 zufällig bestimmen lassen (nicht die 0 dazwischen, quasi ein Münzwurf)</p>
<p>Ich kenne:</p>
<pre><code>rand() % 5
</code></pre>
<p>für eine Zahl wischen 0 und 5.</p>
<p>oder</p>
<pre><code>rand() % 10 + 1
</code></pre>
<p>für eine Zahl zwischen 1 und 10.</p>
<p>Aber ich komm nicht drauf und finde nix wie ich nur zwischen -1 und 1 wählen lasse.</p>
<p>Hoffe ihr habt ein Tipp,</p>
<p>lg</p>
<p>Ollowain</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435810</guid><dc:creator><![CDATA[ollowain86]]></dc:creator><pubDate>Fri, 02 Jan 2015 19:38:12 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 19:44:12 GMT]]></title><description><![CDATA[<p>Lass dir doch einen Wert zwischen 1 und 2 ausgeben und rechne den um.</p>
<p>Ansonsten benutze den neuen random-Header. Der ist in vielen Dingen besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435811</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435811</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Fri, 02 Jan 2015 19:44:12 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 19:44:44 GMT]]></title><description><![CDATA[<p>rand()%2*2-1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435812</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435812</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 02 Jan 2015 19:44:44 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 19:45:20 GMT]]></title><description><![CDATA[<p>Du könntest eine Zahl zwischen 0 und 1 generieren lassen und bei 0 einfach noch -1 rechnen.</p>
<p>Oder mit einer &quot;Tabelle&quot;... 0 -&gt; -1, 1 -&gt; 1</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435813</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435813</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 02 Jan 2015 19:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 20:06:32 GMT]]></title><description><![CDATA[<p>Danke für die vielen Tipps!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23821">@marthog</a></p>
<p>Wie schaut denn der neue random header aus? Bin recht noch ein ziemlicher Neuling was das angeht, google spuckt alles mögliche aus..</p>
<p>Was bed. denn das &quot;*&quot; bei:</p>
<pre><code>rand()%2*2-1
</code></pre>
<p>lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435814</guid><dc:creator><![CDATA[ollowain86]]></dc:creator><pubDate>Fri, 02 Jan 2015 20:06:32 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 20:16:19 GMT]]></title><description><![CDATA[<p>* ist (hier) eine Multiplikation...</p>
<p>Edit: <em>hier</em> eingefügt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435815</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Fri, 02 Jan 2015 20:16:19 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 20:18:18 GMT]]></title><description><![CDATA[<p>Ja aber dann steht bei:</p>
<pre><code>rand() %2*2-1
</code></pre>
<p>doch nichts Anderes als eine Zahl von 4 bis -1 oder von 0 bis 3.<br />
Oder falls Punkt vor Strich hier nicht gilt von 2 bis 1.</p>
<p>Doch raus kommt tatsächlich nur random 1 oder-1.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435818</guid><dc:creator><![CDATA[ollowain86]]></dc:creator><pubDate>Fri, 02 Jan 2015 20:18:18 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 20:26:15 GMT]]></title><description><![CDATA[<p>ollowain86 schrieb:</p>
<blockquote>
<p>Ja aber dann steht bei:</p>
<pre><code>rand() %2*2-1
</code></pre>
</blockquote>
<p>Nettes Leerzeichen!<br />
Ich mach auch mal eins rein:</p>
<pre><code>rand()%2* 2-1
</code></pre>
<p><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="🤡"
    /> <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>
<p>Also die Operatoren *, / und % sind gleichrangig und gehen von links nach rechts.</p>
<p>Die ist klar, was rand()%5 also macht, sagste.<br />
Was macht dann (rand()%5)*2? (Die Klammern kann man auch weglassen hier.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435820</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 02 Jan 2015 20:26:15 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 20:44:09 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">(rand()&amp;2)-1
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2435822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435822</guid><dc:creator><![CDATA[rand4speed]]></dc:creator><pubDate>Fri, 02 Jan 2015 20:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Fri, 02 Jan 2015 22:18:52 GMT]]></title><description><![CDATA[<p>rand4speed schrieb:</p>
<blockquote>
<pre><code class="language-cpp">(rand()&amp;2)-1
</code></pre>
</blockquote>
<p>Schöne Lösung, zumal sie auch noch ohne Division (modulo) auskommt (auch wenn wohl jeder halbwegs intelligente Compiler bei einem &quot;%2&quot; wohl keine DIV-Instruktion erzeugt).</p>
<p>rand4speed schrieb:</p>
<blockquote>
<p>Wie schaut denn der neue random header aus? Bin recht noch ein ziemlicher Neuling was das angeht, google spuckt alles mögliche aus..</p>
</blockquote>
<p><a href="http://en.cppreference.com/w/cpp/header/random" rel="nofollow">http://en.cppreference.com/w/cpp/header/random</a></p>
<p>Für die hier genannten Lösungen sähe das dann mit dem neuen random-header etwa so aus:</p>
<pre><code>#include &lt;random&gt;
...
std::minstd_rand generator(std::random_device());
std::uniform_int_distribution&lt;int&gt; verteilung(0, 1);
...
int zufallszahl = verteilung(generator) * 2 - 1;
</code></pre>
<p>Die Verteilung (hier Gleichverteilung - &quot;uniform distribution&quot;) ermöglicht es ziemlich einfach einen Wertebereich anzugeben, in dem die Zufallszahlen liegen sollen. Ich würde diese Variante bevorzugen, da die Modulo-Lösung den Nachteil hat, dass die Zufallszahlen nicht für alle Wertebereiche genau gleichverteilt sind (In diesem speziellen Fall allerdings schon).</p>
<p>Finnegan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435836</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435836</guid><dc:creator><![CDATA[Finnegan]]></dc:creator><pubDate>Fri, 02 Jan 2015 22:18:52 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Sun, 04 Jan 2015 04:40:24 GMT]]></title><description><![CDATA[<p>Einfach so:</p>
<pre><code>rand()%2? 1 : -1
</code></pre>
<p>Wir sind hier schließlich nicht beim obfuscated code contest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435928</guid><dc:creator><![CDATA[tzjurthgdh]]></dc:creator><pubDate>Sun, 04 Jan 2015 04:40:24 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Sun, 04 Jan 2015 06:33:24 GMT]]></title><description><![CDATA[<p>Das ternäre if ist doch einer der Grundpfeiler des IOCCC. <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/2435930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435930</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 04 Jan 2015 06:33:24 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Sun, 04 Jan 2015 12:29:42 GMT]]></title><description><![CDATA[<p>Hier noch eine Möglichkeit:</p>
<pre><code class="language-cpp">&quot;\xFF\x01&quot;[rand()%2]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2435959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435959</guid><dc:creator><![CDATA[ioccc]]></dc:creator><pubDate>Sun, 04 Jan 2015 12:29:42 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Sun, 04 Jan 2015 13:16:28 GMT]]></title><description><![CDATA[<p>ioccc schrieb:</p>
<blockquote>
<p>Hier noch eine Möglichkeit:</p>
<pre><code class="language-cpp">&quot;\xFF\x01&quot;[rand()%2]
</code></pre>
</blockquote>
<p>Und dann mit <code>-fsigned-char</code> kompilieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435963</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Sun, 04 Jan 2015 13:16:28 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Sun, 04 Jan 2015 14:39:38 GMT]]></title><description><![CDATA[<p>Zugegeben,</p>
<pre><code class="language-cpp">std::array&lt;int,2&gt;{-1,1}[rand()%2]
</code></pre>
<p>ist standardkonformer (da es weder von der Signedness, noch der 8-Bittigkeit und Overfloweigenschaft von char abhängt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435971</guid><dc:creator><![CDATA[ioccc]]></dc:creator><pubDate>Sun, 04 Jan 2015 14:39:38 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Sun, 04 Jan 2015 15:22:21 GMT]]></title><description><![CDATA[<p>Und Indices in Arrays zu generieren ist auch imo der beste Weg um komplexere Zahlenverteilungen zu erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2435973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2435973</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 04 Jan 2015 15:22:21 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Mon, 05 Jan 2015 16:33:13 GMT]]></title><description><![CDATA[<p>Falls <code>%2</code> auf der Plattform zu langsam oder nicht verfügbar ist, kann man auch diese Lösung verwenden:</p>
<pre><code class="language-cpp">for (;;)
{
	int r = -23 + std::rand();
	if (std::labs(r) == 1)
	{
		return r;
	}
}
</code></pre>
<p>Wenn die Zufallszahl sich nicht so oft ändern muss, geht auch das:</p>
<pre><code class="language-cpp">std::ptrdiff_t randomness = reinterpret_cast&lt;std::intptr_t&gt;(&amp;std::rand);
return (randomness &lt; 0) ? -1 : 1;
</code></pre>
<p>Oder der Klassiker für maximale Effizienz:</p>
<pre><code class="language-cpp">int uninitialized;
return (uninitialized &lt; 0) ? -1 : 1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2436078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2436078</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Mon, 05 Jan 2015 16:33:13 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Mon, 05 Jan 2015 20:01:28 GMT]]></title><description><![CDATA[<p>Warum du <code>labs</code> verwendest (und nicht <code>abs</code> ) ist mir schleierhaft. Und warum <code>ptrdiff_t</code> für <code>randomness</code> ?</p>
<blockquote>
<p>Oder der Klassiker für maximale Effizienz:</p>
</blockquote>
<p>UB. Außerdem nicht zufällig wenn die Stackframes sich überschneiden.</p>
<p>Ich befürchte eine Deface-Attacke auf TyRoXx Account, daher fühle ich mich verpflichtet moderationstechnische Maßnahmen zu ergreifen und Account bis auf weiteres zu sperren. <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/2436112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2436112</guid><dc:creator><![CDATA[Columbo]]></dc:creator><pubDate>Mon, 05 Jan 2015 20:01:28 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Tue, 06 Jan 2015 00:10:42 GMT]]></title><description><![CDATA[<p>Vielen Dank euch Allen, hat mir sehr geholfen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2436140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2436140</guid><dc:creator><![CDATA[ollowain86]]></dc:creator><pubDate>Tue, 06 Jan 2015 00:10:42 GMT</pubDate></item><item><title><![CDATA[Reply to +1 oder -1 zufällig wählen on Tue, 06 Jan 2015 08:59:10 GMT]]></title><description><![CDATA[<p>Arcoth schrieb:</p>
<blockquote>
<p>Und warum <code>ptrdiff_t</code> für <code>randomness</code> ?</p>
</blockquote>
<p>Oh, ich habe das mal korrigiert:</p>
<pre><code class="language-cpp">std::intptr_t randomness = reinterpret_cast&lt;std::ptrdiff_t&gt;(&amp;std::rand);
return (randomness &lt; 0) ? -1 : 1;
</code></pre>
<p>Arcoth schrieb:</p>
<blockquote>
<blockquote>
<p>Oder der Klassiker für maximale Effizienz:</p>
</blockquote>
<p>UB. Außerdem nicht zufällig wenn die Stackframes sich überschneiden.</p>
</blockquote>
<p>Kein Problem, einfach mit <code>-O0</code> übersetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2436172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2436172</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Tue, 06 Jan 2015 08:59:10 GMT</pubDate></item></channel></rss>