<?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 abhaengig von Variable]]></title><description><![CDATA[<p>Mahlzeit,</p>
<p>das normale rand() liefert ja einfach nur Zufallszahlen unabhaenig von irgend einer anderen Groesse (abgesehen vom seed).<br />
Ich brauche ein rand(), das Zufallswerte erzeugt, allerdings abhaengig von einem float Uebergabeparameter. Bei 2 Aufrufen mit dem selben Parameter soll die selbe Zufallszahl zurueckgegeben werden. Beispiel:</p>
<pre><code class="language-cpp">float random(float param); // Liefert Zufallszahl in [0,1]
...

float r;
r = random(208.22); // Liefert willkuerlich 0.56
r = random(50.89); // Liefert willkuerlich 0.314
r = random(100);   // Liefert willkuerlich 0.89
r = random(208.22); // Liefert wieder 0.56
</code></pre>
<p>Wie koennte man sowas machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/281975/zufallszahl-abhaengig-von-variable</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 09:37:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/281975.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 11 Feb 2011 12:41:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 12:41:31 GMT]]></title><description><![CDATA[<p>Mahlzeit,</p>
<p>das normale rand() liefert ja einfach nur Zufallszahlen unabhaenig von irgend einer anderen Groesse (abgesehen vom seed).<br />
Ich brauche ein rand(), das Zufallswerte erzeugt, allerdings abhaengig von einem float Uebergabeparameter. Bei 2 Aufrufen mit dem selben Parameter soll die selbe Zufallszahl zurueckgegeben werden. Beispiel:</p>
<pre><code class="language-cpp">float random(float param); // Liefert Zufallszahl in [0,1]
...

float r;
r = random(208.22); // Liefert willkuerlich 0.56
r = random(50.89); // Liefert willkuerlich 0.314
r = random(100);   // Liefert willkuerlich 0.89
r = random(208.22); // Liefert wieder 0.56
</code></pre>
<p>Wie koennte man sowas machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019616</guid><dc:creator><![CDATA[Zufaller]]></dc:creator><pubDate>Fri, 11 Feb 2011 12:41:31 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 12:43:16 GMT]]></title><description><![CDATA[<p>Dann hat das ja nicht mehr viel mit Zufall zu tun.</p>
<p>Willst du einen Hash? Dann wäre vielleicht <em>TR1.Hash</em> (oder <em>Boost.Hash</em>) etwas für dich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019618</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Feb 2011 12:43:16 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 12:50:42 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Dann hat das ja nicht mehr viel mit Zufall zu tun.</p>
</blockquote>
<p>Wieso?<br />
Wuerde ich den Graphen G = {(p, random(p))} plotten, waere das eine total willkuerlich gezackte Kurve. Nur halt 2 Parameter sollen den selben Random wert liefern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019624</guid><dc:creator><![CDATA[Zufaller]]></dc:creator><pubDate>Fri, 11 Feb 2011 12:50:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 12:54:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">float s = 208.22f;
std::stand(static_cast&lt;unsigned int&gt;(s*100));
float r = (std::rand()%10000) / 100.f
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2019629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019629</guid><dc:creator><![CDATA[asdfdsfsdf]]></dc:creator><pubDate>Fri, 11 Feb 2011 12:54:43 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 13:01:31 GMT]]></title><description><![CDATA[<p>asdfdsfsdf schrieb:</p>
<blockquote>
<pre><code class="language-cpp">float s = 208.22f;
std::stand(static_cast&lt;unsigned int&gt;(s*100));
float r = (std::rand()%10000) / 100.f
</code></pre>
</blockquote>
<p>Ich denke das sollte gehen. Die 10000 waren dann quasi mein Maximalwert des Parameters. Einziger &quot;Nachteil&quot; waere, dass ich fuer jede Zufallsvariable einmal srand() aufrufen muesste. Ist der Aufruf von srand() teuer oder geht das fix?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019635</guid><dc:creator><![CDATA[Zufaller]]></dc:creator><pubDate>Fri, 11 Feb 2011 13:01:31 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 13:15:38 GMT]]></title><description><![CDATA[<p>Ah, dann willst du eine Art verrauschter Zufallsprozess, wobei <code>param</code> dann der Zeitpunkt ist. Wenn die Anzahl möglicher Zeitpunkte endlich ist (und einigermassen klein), könntest du auch ein Array vorberechnen.</p>
<p>Ich bin mir nicht sicher, wie gut die Eigenschaften des linearen Kongruenzgenerators hier sind (ob man etwas von der Abhängigkeit nacheinanderfolgender Zufallszahlen merkt). Fest steht jedoch, dass die Auflösung von s mit asdfdsfsdfs Code nur 0.01 ist (d.h. Werte, die sich um weniger unterscheiden, führen u.U. zur gleichen Zufallszahl).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019642</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Feb 2011 13:15:38 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 13:33:12 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Ah, dann willst du eine Art verrauschter Zufallsprozess, wobei <code>param</code> dann der Zeitpunkt ist. Wenn die Anzahl möglicher Zeitpunkte endlich ist (und einigermassen klein), könntest du auch ein Array vorberechnen.</p>
</blockquote>
<p>Ja, das war auch mein 1. Gedanke. Das Intervall kenne ich genau [0,n], n is maximal so um die 4000 gross. Dann ein Array mit Zufallswerten fuellen und mit Parameter p dann zwischen den 2 naheliegendsten linear interpolieren.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Ich bin mir nicht sicher, wie gut die Eigenschaften des linearen Kongruenzgenerators hier sind (ob man etwas von der Abhängigkeit nacheinanderfolgender Zufallszahlen merkt). Fest steht jedoch, dass die Auflösung von s mit asdfdsfsdfs Code nur 0.01 ist (d.h. Werte, die sich um weniger unterscheiden, führen u.U. zur gleichen Zufallszahl).</p>
</blockquote>
<p>Das wuerde nichts ausmachen. Das einzig wichtige is, dass gleiche Paramter zum gleichen Zufallswert fuehren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019653</guid><dc:creator><![CDATA[Zufaller]]></dc:creator><pubDate>Fri, 11 Feb 2011 13:33:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 13:52:54 GMT]]></title><description><![CDATA[<p>asdfdsfsdf schrieb:</p>
<blockquote>
<pre><code class="language-cpp">float s = 208.22f;
std::stand(static_cast&lt;unsigned int&gt;(s*100));
float r = (std::rand()%10000) / 100.f
</code></pre>
</blockquote>
<p>Mir ist gerade aufgefallen, dass der Code Quatsch ist. So muss der Code aussehen:</p>
<pre><code class="language-cpp">float s = 208.22f;
std::stand(static_cast&lt;unsigned int&gt;(s*100));
float r = std::rand() / (float)RAND_MAX;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2019664</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019664</guid><dc:creator><![CDATA[Zufaller]]></dc:creator><pubDate>Fri, 11 Feb 2011 13:52:54 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 14:30:39 GMT]]></title><description><![CDATA[<blockquote>
<p>Dann ein Array mit Zufallswerten fuellen und mit Parameter p dann zwischen den 2 naheliegendsten linear interpolieren.</p>
</blockquote>
<p>Wo macht die lineare Interpolation zwischen zufälligen Punkten Sinn?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019685</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Fri, 11 Feb 2011 14:30:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 14:39:27 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<blockquote>
<p>Dann ein Array mit Zufallswerten fuellen und mit Parameter p dann zwischen den 2 naheliegendsten linear interpolieren.</p>
</blockquote>
<p>Wo macht die lineare Interpolation zwischen zufälligen Punkten Sinn?</p>
</blockquote>
<p>Ich hoffe die Frage ist nicht ernst gemeint... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019691</guid><dc:creator><![CDATA[Zufaller]]></dc:creator><pubDate>Fri, 11 Feb 2011 14:39:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 14:44:33 GMT]]></title><description><![CDATA[<p>Zufaller schrieb:</p>
<blockquote>
<p>Das wuerde nichts ausmachen. Das einzig wichtige is, dass gleiche Paramter zum gleichen Zufallswert fuehren.</p>
</blockquote>
<p>Genau das macht doch seed beim normalen rand... Bei gleichem seed kommt auch die identische Kette von Zufallszahlen raus... Darum ist rand ja auch ein Pseudo-Zufallszahlengenerator und kein echter...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019696</guid><dc:creator><![CDATA[loks]]></dc:creator><pubDate>Fri, 11 Feb 2011 14:44:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 15:16:00 GMT]]></title><description><![CDATA[<p>loks schrieb:</p>
<blockquote>
<p>Zufaller schrieb:</p>
<blockquote>
<p>Das wuerde nichts ausmachen. Das einzig wichtige is, dass gleiche Paramter zum gleichen Zufallswert fuehren.</p>
</blockquote>
<p>Genau das macht doch seed beim normalen rand... Bei gleichem seed kommt auch die identische Kette von Zufallszahlen raus... Darum ist rand ja auch ein Pseudo-Zufallszahlengenerator und kein echter...</p>
</blockquote>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox25598" /><label for="checkbox25598">Du hast meine Frage verstanden.</label></div></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019718</guid><dc:creator><![CDATA[Zufaller]]></dc:creator><pubDate>Fri, 11 Feb 2011 15:16:00 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Fri, 11 Feb 2011 15:30:57 GMT]]></title><description><![CDATA[<p>Zufaller schrieb:</p>
<blockquote>
<p>Ich hoffe die Frage ist nicht ernst gemeint... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Zufaller schrieb:</p>
<blockquote>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox25599" /><label for="checkbox25599">Du hast meine Frage verstanden.</label></div></p>
</blockquote>
<p>Wenn man Hilfe sucht, darf man sich ruhig auch ein wenig um einen freundlichen Ton bemühen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2019727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2019727</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 11 Feb 2011 15:30:57 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Mon, 14 Feb 2011 08:10:27 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>könntest du auch ein Array vorberechnen.</p>
</blockquote>
<p>Warum vorberechnen? Ich würds berechnen, wenns nötig ist und dann nach dem Berechnen in einem Array abspeichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020692</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 14 Feb 2011 08:10:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zufallszahl abhaengig von Variable on Mon, 14 Feb 2011 12:36:21 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Warum vorberechnen? Ich würds berechnen, wenns nötig ist und dann nach dem Berechnen in einem Array abspeichern.</p>
</blockquote>
<p>Naja, kommt halt drauf an, ob sich das Caching lohnt. Wenn man sowieso auf die Werte zugreift, kann man sich so die If-Abfrage bei jedem Zugriff sparen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2020777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2020777</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 14 Feb 2011 12:36:21 GMT</pubDate></item></channel></rss>