<?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[rand() problem...]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich brauche eine kleine funktion, die mir immer einen wert im bestimmten Bereich liefert.</p>
<p>Hier kurz mein problem:</p>
<p>Ich habe eine polylinie mit x-punkten die ich abfahren will. An all den Punkten will ich &quot;zufällig&quot; einen neuen Punkt mit einem zufälligen Abstand und einem zufälligen Winkel setzen...</p>
<p>Hier mein code dazu:</p>
<pre><code class="language-cpp">void punkte_neu_vergeben()
{
srand((unsigned)time(0)); 
for(short i=1;i&lt;m_mehrfachkrone;i++){                        // hier wird die Polylinie punkt für punkt abgefahren
    GetVertex(cbp, krone_dupli, vertice, wp_vertice, vtype, arcRadius);	 
    double_gs zufall_winkel = zufall_zwischen(0.0, 2*PI);
    double_gs zufall_radius = zufall_zwischen(min_fenster, max_fenster);

    // Hier wird dann der neue Punkt gesetzt...

}
}

/************************************************************/
Float64 zufall_zwischen(Float64 min, Float64 max)
{	
	cwdebug(&quot;Max(Float): %f Min %f\n&quot;, max, min);
	int max_int, min_int;
	max_int = max;
	min_int = min;
	cwdebug(&quot;Max: %d Min %d\n&quot;, max_int, min_int);

	double_gs zu = (rand() % (max_int - min_int + 1) + min_int);

	return(zu); 									
}
</code></pre>
<p>Allerdings erhalte ich immmer die selbe Zahl zurück....</p>
<p>Hat einer ne Idee wie ich den fehler beheben kann?</p>
<p>Danke Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187694/rand-problem</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 19:02:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187694.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Jul 2007 06:40:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to rand() problem... on Mon, 23 Jul 2007 06:40:24 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich brauche eine kleine funktion, die mir immer einen wert im bestimmten Bereich liefert.</p>
<p>Hier kurz mein problem:</p>
<p>Ich habe eine polylinie mit x-punkten die ich abfahren will. An all den Punkten will ich &quot;zufällig&quot; einen neuen Punkt mit einem zufälligen Abstand und einem zufälligen Winkel setzen...</p>
<p>Hier mein code dazu:</p>
<pre><code class="language-cpp">void punkte_neu_vergeben()
{
srand((unsigned)time(0)); 
for(short i=1;i&lt;m_mehrfachkrone;i++){                        // hier wird die Polylinie punkt für punkt abgefahren
    GetVertex(cbp, krone_dupli, vertice, wp_vertice, vtype, arcRadius);	 
    double_gs zufall_winkel = zufall_zwischen(0.0, 2*PI);
    double_gs zufall_radius = zufall_zwischen(min_fenster, max_fenster);

    // Hier wird dann der neue Punkt gesetzt...

}
}

/************************************************************/
Float64 zufall_zwischen(Float64 min, Float64 max)
{	
	cwdebug(&quot;Max(Float): %f Min %f\n&quot;, max, min);
	int max_int, min_int;
	max_int = max;
	min_int = min;
	cwdebug(&quot;Max: %d Min %d\n&quot;, max_int, min_int);

	double_gs zu = (rand() % (max_int - min_int + 1) + min_int);

	return(zu); 									
}
</code></pre>
<p>Allerdings erhalte ich immmer die selbe Zahl zurück....</p>
<p>Hat einer ne Idee wie ich den fehler beheben kann?</p>
<p>Danke Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330536</guid><dc:creator><![CDATA[michi0209]]></dc:creator><pubDate>Mon, 23 Jul 2007 06:40:24 GMT</pubDate></item><item><title><![CDATA[Reply to rand() problem... on Mon, 23 Jul 2007 06:48:44 GMT]]></title><description><![CDATA[<p>Erstmal beschränkst du dir enorm deinen Wertebereich, indem du die übergebenen Parameter in int's umrechnest. Abeite lieber direkt mit den übergebenen float-Werten:</p>
<pre><code class="language-cpp">Float64 range = (max-min)/RAND_MAX;
return rand()*range+min;
</code></pre>
<p>Zweitens: Wo bekommst du ständig die selbe Zahl? Innerhalb eines Aufrufes der Funktion punkte_neu_vergeben()? Oder bei jedem neuen Aufruf? (wenn letzteres: pack den srand()-Aufruf mal aus der Funktion heraus)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330538</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Jul 2007 06:48:44 GMT</pubDate></item><item><title><![CDATA[Reply to rand() problem... on Mon, 23 Jul 2007 07:07:18 GMT]]></title><description><![CDATA[<p>nun, das ist eigentlich nicht so wild, weil ich sowieso nur eine zwahl zwischen 0 und 360 brauche um einen zufälligen Kreiswinkel zu bekommen... aber prima... ich habe rufe jetzt die srand funktion weggelassen und es schaut &quot;gut&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> aus...</p>
<p>danke erstmal...</p>
<p>werde jetzt weitere tests machen.</p>
<p>Danke</p>
<p>Michael</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330549</guid><dc:creator><![CDATA[michi0209]]></dc:creator><pubDate>Mon, 23 Jul 2007 07:07:18 GMT</pubDate></item><item><title><![CDATA[Reply to rand() problem... on Mon, 23 Jul 2007 07:16:26 GMT]]></title><description><![CDATA[<p>michi0209 schrieb:</p>
<blockquote>
<p>nun, das ist eigentlich nicht so wild, weil ich sowieso nur eine zwahl zwischen 0 und 360 brauche um einen zufälligen Kreiswinkel zu bekommen... aber prima...</p>
</blockquote>
<p>Du berechnest aber einen zufälligen Wert zwischen 0 und 6 - und das dürfte etwas zu wenig sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330552</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Jul 2007 07:16:26 GMT</pubDate></item><item><title><![CDATA[Reply to rand() problem... on Mon, 23 Jul 2007 07:43:52 GMT]]></title><description><![CDATA[<p>wieso &quot;nur 0-6?? wie ommst du auf das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330569</guid><dc:creator><![CDATA[michi0209]]></dc:creator><pubDate>Mon, 23 Jul 2007 07:43:52 GMT</pubDate></item><item><title><![CDATA[Reply to rand() problem... on Mon, 23 Jul 2007 07:48:18 GMT]]></title><description><![CDATA[<p>Es kann natürlich sein, daß du die Bezeichnung PI etwas zweckentfremdet hast, aber normalerweise ist PI≈3.14. Das heißt, du übergibst beim ersten Aufruf von zufall_zwischen die Werte 0 und 6.28 - die sofort gestutzt werden auf 0 und 6.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330574</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Jul 2007 07:48:18 GMT</pubDate></item><item><title><![CDATA[Reply to rand() problem... on Mon, 23 Jul 2007 08:01:08 GMT]]></title><description><![CDATA[<p>ja stimmt.... da hast du recht!</p>
<p>Aber was ich nochmal fragen wollte! Was passiert eigentlich wenn ich die srand funktion nicht aufrufen? Denn es sieht so aus als ob meine &quot;Zufallszahl&quot; sich immer nur jede sekunde ändert...?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330578</guid><dc:creator><![CDATA[michi0209]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:01:08 GMT</pubDate></item><item><title><![CDATA[Reply to rand() problem... on Mon, 23 Jul 2007 08:05:05 GMT]]></title><description><![CDATA[<p>srand() initialisiert den Zufallsgenerator mit dem übergebenen Wert. Wenn du es ganz weglässt, startet er bei jedem neuen Programmlauf mit 0. Wenn du es zu oft aufrufst, reinitialisierst du den Zufallsgenerator dagegen ständig neu - und bei identischem Startwert erhältst du auch eine identische Zufallsfolge.</p>
<p>Deswegen: srand() mußt du genau EIN MAL am Anfang deines Programms aufrufen - nicht mehr und nicht weniger.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1330580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1330580</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 23 Jul 2007 08:05:05 GMT</pubDate></item></channel></rss>