<?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[Suche nach besserer Lösung]]></title><description><![CDATA[<p>Schönen guten Tag,<br />
Ich habe gerade ein kleines Problem. Ich Programmiere gerade einen Algorithmus der nach dem Maximum und Minimum einer Funktion sucht.<br />
Beispiel: Bergsteiger Algorithmus<br />
if(J&lt;J_ref)<br />
{<br />
J_ref = J;<br />
Q = Q_test;<br />
Q_test = Q_test +(StepSize/100)*Q_test;<br />
}<br />
else<br />
{<br />
Q_test = Q;<br />
Q_test = Q_test - (StepSize/100)*Q_test;<br />
}</p>
<p>Damit ist es mir möglich das Minimum zu finden. Benötige ich jedoch das Maximum, müsste ich das ganze Rückwerts laufen lassen. Ich könnte es mit if und else lösen.<br />
Ginge es nicht auch in dem ich einfach denn Additions Operator überschreibe. Das heißt ich speichere entweder + oder – in eine Variabel, welche frei gewählt werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266895/suche-nach-besserer-lösung</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 17:20:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266895.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 16 May 2010 11:14:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 11:14:49 GMT]]></title><description><![CDATA[<p>Schönen guten Tag,<br />
Ich habe gerade ein kleines Problem. Ich Programmiere gerade einen Algorithmus der nach dem Maximum und Minimum einer Funktion sucht.<br />
Beispiel: Bergsteiger Algorithmus<br />
if(J&lt;J_ref)<br />
{<br />
J_ref = J;<br />
Q = Q_test;<br />
Q_test = Q_test +(StepSize/100)*Q_test;<br />
}<br />
else<br />
{<br />
Q_test = Q;<br />
Q_test = Q_test - (StepSize/100)*Q_test;<br />
}</p>
<p>Damit ist es mir möglich das Minimum zu finden. Benötige ich jedoch das Maximum, müsste ich das ganze Rückwerts laufen lassen. Ich könnte es mit if und else lösen.<br />
Ginge es nicht auch in dem ich einfach denn Additions Operator überschreibe. Das heißt ich speichere entweder + oder – in eine Variabel, welche frei gewählt werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897821</guid><dc:creator><![CDATA[juri23]]></dc:creator><pubDate>Sun, 16 May 2010 11:14:49 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 11:29:40 GMT]]></title><description><![CDATA[<p>Klar geht das. Für etwas gibt es ja <code>signed</code> (Vorzeichenbehaftete) Datentypen.. Wo genau liegt das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897830</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 16 May 2010 11:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 11:42:20 GMT]]></title><description><![CDATA[<p>Also fassen wir mal zusammen .....<br />
Einen Maximum wert und einen Minimumwert<br />
gibt es nur bei<br />
Alternierenden Funktionen die um einen bestimmten wertert ähm herrum schwirren XD<br />
beispielsweiße f(x) = (-1) hoch x<br />
oder bei funktionen mit grenzwert<br />
bsp : 1/x</p>
<p>so<br />
funtkoinen mit entwerder maximum oder minimum erhälst du nur bei<br />
expnenzalfunktionen mit gradem exponenten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897840</guid><dc:creator><![CDATA[MaxM93]]></dc:creator><pubDate>Sun, 16 May 2010 11:42:20 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 11:45:08 GMT]]></title><description><![CDATA[<p>Ich verstehe erst gar nicht, was er vor hat. Ein Vorzeichenwechsel kannst du jedenfalls ganz einfach über einen Faktor realisieren:</p>
<pre><code class="language-cpp">bool Positiv = true;

int Faktor = Positiv ? 1 : -1;

int Wert = (100 + 12) * Faktor; // Ergebnis entweder positiv oder negativ.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1897842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897842</guid><dc:creator><![CDATA[hgjghj]]></dc:creator><pubDate>Sun, 16 May 2010 11:45:08 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 12:57:36 GMT]]></title><description><![CDATA[<p>Würde es dann so ausehen ? Ob es Max oder Min sein soll könnte ich vorher abfragen lassen.</p>
<pre><code class="language-cpp">double signed negativ=-1;
double signed positiv=1;

//Berechnung für min 
vorzeichen = negativ;
//Berechnung für max
vorzeichen = positiv;

if(J&lt;J_ref)
{
J_ref = J;
Q = Q_test;
Q_test = Q_test (-)*vorzeichen(StepSize/100)*Q_test;
}
else
{
Q_test = Q;
Q_test = Q_test vorzeichen (StepSize/100)*Q_test;
}
</code></pre>
<p>-----&gt; Bitte Code-Tags verwenden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1897847</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897847</guid><dc:creator><![CDATA[juri23]]></dc:creator><pubDate>Sun, 16 May 2010 12:57:36 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 11:56:01 GMT]]></title><description><![CDATA[<p>Ich denke, er meint, dass ein Operator sich abhängig von einer Variable wie + oder - verhalten soll. Man könnte mit Templates und <code>std::plus</code> bzw. <code>std::minus</code> etwas basteln, aber einfacher wäre wohl sowas:</p>
<pre><code class="language-cpp">Q = Q_test; 
Q_test = Q_test + (StepSize/100) * Q_test * (2*(J&lt;J_ref) - 1);
</code></pre>
<p>Oder verständlicher:</p>
<pre><code class="language-cpp">Q = Q_test;  
Q_test = Q_test + (StepSize/100) * Q_test * (J&lt;J_ref ? +1 : -1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1897849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1897849</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 16 May 2010 11:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 18:47:08 GMT]]></title><description><![CDATA[<p>ich glaube wir haben uns nicht ganz verstanden.<br />
Es geht nur darum das ich zeilen sparren wollte.</p>
<p>Es müsste so aussehen:</p>
<p>Es ist nur ein Code ausschnitt. Da hier der Unterschied lediglich das Vorzeichen ist wollte ich das ganze anders lösen. lg</p>
<pre><code class="language-cpp">if(eingabe = max) \\Berechnung eines Maximus

if(J&lt;J_ref)
{
J_ref = J;
Q = Q_test;
Q_test = Q_test +(StepSize/100)*Q_test;
}
else
{
Q_test = Q;
Q_test = Q_test - (StepSize/100)*Q_test;
} 

else // Berechnung eines Min

if(J&lt;J_ref)
{
J_ref = J;
Q = Q_test;
Q_test = Q_test -(StepSize/100)*Q_test;
}
else
{
Q_test = Q;
Q_test = Q_test + (StepSize/100)*Q_test;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1898069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898069</guid><dc:creator><![CDATA[juri23]]></dc:creator><pubDate>Sun, 16 May 2010 18:47:08 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 18:57:56 GMT]]></title><description><![CDATA[<p>Das Prinzip ist doch aus meinem Post ersichtlich. Es auf die konkrete Bedingung anzuwenden ist deine Aufgabe. Oder wo liegt das Problem?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898073</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 16 May 2010 18:57:56 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 19:15:32 GMT]]></title><description><![CDATA[<p>ich verstehe deinen code nicht, könntest du es mir etwas genauer erklären. Bin kein Profi im Programmieren. lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898084</guid><dc:creator><![CDATA[juri23]]></dc:creator><pubDate>Sun, 16 May 2010 19:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Sun, 16 May 2010 21:04:05 GMT]]></title><description><![CDATA[<p>Wichtig ist eigentlich nur dieser Teil:</p>
<pre><code class="language-cpp">resultat = a + b * (bedingung ? +1 : -1);
</code></pre>
<p>Den <code>?:</code> -Operator kennst du? Der ist wie ein kompaktes <code>if</code> , also im Prinzip so:</p>
<pre><code class="language-cpp">if (bedingung)
    resultat = a + b * (+1);
else
    resultat = a + b * (-1);
</code></pre>
<p>Und das ist das Gleiche wie:</p>
<pre><code class="language-cpp">if (bedingung)
    resultat = a + b;
else
    resultat = a - b;
</code></pre>
<p>Also habe ich das Ganze kompakter geschrieben und Codeduplizierung vermieden. Übrigens macht der folgende Code dasselbe (du musst dir überlegen, dass <code>true</code> dem Wert 1 und <code>false</code> dem Wert 0 entspricht, also ist <code>2*1 - 1 == 1</code> und <code>2*0 - 1 == -1</code> ):</p>
<pre><code class="language-cpp">resultat = a + b * (2*bedingung - 1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1898134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898134</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 16 May 2010 21:04:05 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Tue, 18 May 2010 09:37:54 GMT]]></title><description><![CDATA[<p>wuw jetzt habe ich es verstanden. Sehr gut durchdacht.</p>
<p>Hmm dann habe ich noch ne kleine Frage.</p>
<p>Wenn ich Angenommen nur die Bedingung ändern möchte. Um genau nur das &lt; oder &gt; wie würdest du da rangehen.</p>
<p>Würdest du dieses Zeichen mit ASCII in einer variablen speichern und diese dann übergeben ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898873</guid><dc:creator><![CDATA[juri23]]></dc:creator><pubDate>Tue, 18 May 2010 09:37:54 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Tue, 18 May 2010 09:46:35 GMT]]></title><description><![CDATA[<p>juri23 schrieb:</p>
<blockquote>
<p>wuw jetzt habe ich es verstanden. Sehr gut durchdacht.</p>
<p>Hmm dann habe ich noch ne kleine Frage.</p>
<p>Wenn ich Angenommen nur die Bedingung ändern möchte. Um genau nur das &lt; oder &gt; wie würdest du da rangehen.</p>
<p>Würdest du dieses Zeichen mit ASCII in einer variablen speichern und diese dann übergeben ?</p>
</blockquote>
<p>Du kannst Operatoren nicht in Textform übergeben. Wenn man beliebige Operatoren an eine funktion übergeben will, macht man das mit Funktionszeigern. Aber da es hier nur um den Austausch von &lt; und &gt; geht, macht man das auch mit einem Vorfaktor, denn a&lt;b ist äquivalent zu -a&gt;=b.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898881</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898881</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 May 2010 09:46:35 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Tue, 18 May 2010 11:17:34 GMT]]></title><description><![CDATA[<p>bei der zweiten Variante hatte ich leider probleme mit dem Ergebnis.<br />
bei<br />
(J&lt;J_ref) kamen nicht die selben Ergebnisse raus wie bei (-J&gt;J_ref)</p>
<p>Deswegen versuche ich es gerade mit deinem anderen Vorschlag.<br />
würde es so aussehen ?</p>
<p>//Hat man sich für ein Minimum entschieden<br />
*funktion = &amp; bool operator&lt;(X const&amp; J, X const&amp; J_ref);<br />
//Hat man sich für ein Maximum entschieden<br />
*funktion = &amp; bool operator&gt;(X const&amp; J, X const&amp; J_ref);</p>
<p>((Außerdem ist es ein Problem das X bedeutet das ich diesen Operator nur als Klassenmethoden überladen kann und ich nicht mit Klassen arbeite ?))</p>
<p>if(funktion==true)<br />
....</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1898916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1898916</guid><dc:creator><![CDATA[juri23]]></dc:creator><pubDate>Tue, 18 May 2010 11:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Tue, 18 May 2010 17:10:20 GMT]]></title><description><![CDATA[<p>ist diese Frage so dumm ? das Problem kann doch nicht so schwer sein ? Aber ich komme einfach nicht drauf. <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="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1899160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1899160</guid><dc:creator><![CDATA[juri23]]></dc:creator><pubDate>Tue, 18 May 2010 17:10:20 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Tue, 18 May 2010 17:20:02 GMT]]></title><description><![CDATA[<p>juri23 schrieb:</p>
<blockquote>
<p>ist diese Frage so dumm ? das Problem kann doch nicht so schwer sein ? Aber ich komme einfach nicht drauf. <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="😞"
    /></p>
</blockquote>
<p>Ich glaube eher der allgemeine Eindruck ist, dass deine Fragen bereits beantwortet wurden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1899166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1899166</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 May 2010 17:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Tue, 18 May 2010 17:33:50 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>denn a&lt;b ist äquivalent zu -a&gt;=b.</p>
</blockquote>
<p>Nein (betrachte a=2, b=3).</p>
<p>Aber</p>
<pre><code class="language-cpp">a &lt; b;  // *(-1)
-a &gt; -b;
</code></pre>
<p>Oder</p>
<pre><code class="language-cpp">a &lt; b;
b &gt; a;
</code></pre>
<p>juri23 schrieb:</p>
<blockquote>
<p>das Problem kann doch nicht so schwer sein ?</p>
</blockquote>
<p>Du kannst natürlich einen Funktionszeiger speichern, das war auch, was ich mit &quot;Templates und <code>std::plus</code> bzw. <code>std::minus</code> &quot; gemeint habe. Ich fürchte jedoch, das geht etwas zu weit für dich. Abgesehen davon ist es gar nicht nötig.</p>
<p>Mit einer der beiden oben gezeigten Beziehungen solltest du es nun wirklich schaffen, denselben Operator für mehrere Fälle anzuwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1899173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1899173</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 18 May 2010 17:33:50 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Tue, 18 May 2010 17:31:48 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>denn a&lt;b ist äquivalent zu -a&gt;=b.</p>
</blockquote>
<p>Nein (Gegenbeispiel a=2, b=3).</p>
<p>Aber</p>
<pre><code class="language-cpp">a &lt; b;  // *(-1)
-a &gt; -b;
</code></pre>
</blockquote>
<p>Ups, wie peinlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1899176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1899176</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 18 May 2010 17:31:48 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach besserer Lösung on Tue, 18 May 2010 17:53:19 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a></p>
<p>au jetzt sehe ich es auch...sry das war echt peinlich. Jap das ist die beste Lösung.</p>
<p>Noch mal danke an alle <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="🙂"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1899182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1899182</guid><dc:creator><![CDATA[juri23]]></dc:creator><pubDate>Tue, 18 May 2010 17:53:19 GMT</pubDate></item></channel></rss>