<?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[Möglichkeiten berechnen.]]></title><description><![CDATA[<p>Ich habe ein Programm geschrieben das ausgeben soll wie viel Möglichkeiten es gibt mit X Kreuzen verschieden Felder auszuwählen bzw. Stellen des X.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Daten
{
public:
    double Anzahl_n;
    double Anzahl_k;
    double ergebnis;

};

using namespace std;

double n;
double k;
double New_Sub_k;
double New_k;
double New_n;
double New_Sub_n;

int main()
{

Daten RNG;

cout &lt;&lt; &quot;Gebe ein wie viel Moeglichkeiten es gibt&quot; &lt;&lt; endl;
cin &gt;&gt; RNG.Anzahl_n;
cout &lt;&lt; &quot;Gebe ein wie viel Moeglichkeiten auswaehlbar sind&quot; &lt;&lt; endl;
cin &gt;&gt; RNG.Anzahl_k;

    void Ausgabe();  
    {

    RNG.Anzahl_n = n;
    RNG.Anzahl_k = k;

    New_k = n - k;

    double i = New_k; 

    while(i == 0)
    {
        double minus1 = i - 1;

        double New_Sub_k = k * minus1;

    }

    double j = New_n;

    while(j == 0)
    {

    double minus2 = j - 1;

    double New_Sub_n = New_k * minus2;

    }

    RNG.ergebnis = New_Sub_n / New_Sub_k;

    }

    cout &lt;&lt; RNG.ergebnis &lt;&lt; endl;
    cout &lt;&lt; endl;

        cin.get();
}
</code></pre>
<p>leider gibt es nur anstatt das Ergebnis was beispiels weiße bei 10 Feldern und 3 Kreuzen = 720 wäre.</p>
<p>Nichts aus es bleibt an der Schleife hängen.. und kommt in eine Endlosschleife so wie ich das sehe. Was ist falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/275455/möglichkeiten-berechnen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 00:57:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/275455.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Oct 2010 21:08:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Möglichkeiten berechnen. on Thu, 14 Oct 2010 21:08:14 GMT]]></title><description><![CDATA[<p>Ich habe ein Programm geschrieben das ausgeben soll wie viel Möglichkeiten es gibt mit X Kreuzen verschieden Felder auszuwählen bzw. Stellen des X.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Daten
{
public:
    double Anzahl_n;
    double Anzahl_k;
    double ergebnis;

};

using namespace std;

double n;
double k;
double New_Sub_k;
double New_k;
double New_n;
double New_Sub_n;

int main()
{

Daten RNG;

cout &lt;&lt; &quot;Gebe ein wie viel Moeglichkeiten es gibt&quot; &lt;&lt; endl;
cin &gt;&gt; RNG.Anzahl_n;
cout &lt;&lt; &quot;Gebe ein wie viel Moeglichkeiten auswaehlbar sind&quot; &lt;&lt; endl;
cin &gt;&gt; RNG.Anzahl_k;

    void Ausgabe();  
    {

    RNG.Anzahl_n = n;
    RNG.Anzahl_k = k;

    New_k = n - k;

    double i = New_k; 

    while(i == 0)
    {
        double minus1 = i - 1;

        double New_Sub_k = k * minus1;

    }

    double j = New_n;

    while(j == 0)
    {

    double minus2 = j - 1;

    double New_Sub_n = New_k * minus2;

    }

    RNG.ergebnis = New_Sub_n / New_Sub_k;

    }

    cout &lt;&lt; RNG.ergebnis &lt;&lt; endl;
    cout &lt;&lt; endl;

        cin.get();
}
</code></pre>
<p>leider gibt es nur anstatt das Ergebnis was beispiels weiße bei 10 Feldern und 3 Kreuzen = 720 wäre.</p>
<p>Nichts aus es bleibt an der Schleife hängen.. und kommt in eine Endlosschleife so wie ich das sehe. Was ist falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965798</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965798</guid><dc:creator><![CDATA[progwritter]]></dc:creator><pubDate>Thu, 14 Oct 2010 21:08:14 GMT</pubDate></item><item><title><![CDATA[Reply to Möglichkeiten berechnen. on Thu, 14 Oct 2010 21:21:04 GMT]]></title><description><![CDATA[<p>Also ich habe das hier:</p>
<pre><code>Die Lösung der Aufgabe hängt von der Anzahl n der anzukreuzenden Felder ab (hier 10) sowie von der Anzahl k der Kreuze, die man machen darf (k muss selbstverständlich kleiner oder gleich n sein).

.

In der Sprache der Kombinatorik, dem zugehörigen Teilbegiet der Mathematik, nennt man ein derartiges Auswahlproblem &quot;Variation ohne Zurücklegen&quot;.

.

Für die Anzahl Z der Möglichkeiten für eine solche Auswahl gilt:

Z = n! / (n-k)!

(! ist die übliche Schreibweise für die Fakultätsfunktion)

.

Habe ich also n = 10 Felder und soll k = 3 davon ankreuzen, dann ergibt sich:

Z = 10! / (10-3)!

= 10! / 7!

= (10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1) / (7 * 6 * 5 * 4 * 3 * 2 * 1)

= 720
</code></pre>
<p>probiert in ein Programm umzusetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965800</guid><dc:creator><![CDATA[progwritter]]></dc:creator><pubDate>Thu, 14 Oct 2010 21:21:04 GMT</pubDate></item><item><title><![CDATA[Reply to Möglichkeiten berechnen. on Thu, 14 Oct 2010 21:25:40 GMT]]></title><description><![CDATA[<p>Ich würde dir, nur als Tipp am Rande, dringendst davon abraten, alle deine Variablen als <code>double</code> zu deklarieren. Das sind Fließkommazahlen und die brauchst du in der Kombinatorik definitiv nicht! Da wunderst du dich nur, warum irgend wann ein ziemlicher Müll dransteht. Nimm lieber <code>long long</code> als Datentyp, wenn es um sehr große Zahlen gehen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965803</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 14 Oct 2010 21:25:40 GMT</pubDate></item><item><title><![CDATA[Reply to Möglichkeiten berechnen. on Thu, 14 Oct 2010 21:25:40 GMT]]></title><description><![CDATA[<p>Dein i und dein j werden in der Schleife nicht verändert. Darum werden sie auch nie ungleich 0.</p>
<p>Außerdem: Dein Code quillt geradezu über vor Fehlern und ungewöhlichen Konstrukten, ich weiß gar nicht wo ich anfangen soll. Da es schon spät ist, überlasse ich das mal dem nächsten Helfer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965802</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Oct 2010 21:25:40 GMT</pubDate></item><item><title><![CDATA[Reply to Möglichkeiten berechnen. on Thu, 14 Oct 2010 21:52:16 GMT]]></title><description><![CDATA[<pre><code>while(i == 0)
	{
		i - 1;

		double New_Sub_k = k * i;

	}
</code></pre>
<p>und</p>
<pre><code>while(j == 0)
	{

	j - 1;

	double New_Sub_n = New_k * j;

	}
</code></pre>
<p>jetzt sollte doch das j jedes mal um 1 Zahl vermindert werden und irgend wann gleich Null sein oder nicht?<br />
und das kann ich dann ja gleich für new_k * j nutzen so wird jedes mal die Zahl um 1 verkleinert also 10 *9 (9=j)... 10 *8 (8=j).. oder klappt das so nicht?</p>
<p>SeppJ ja ich habe probleme mit der Konstruktur <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=":/"
      alt="😕"
    /> wie ich das alles am beten mache .. aber was für Fehler meinst du genau?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965820</guid><dc:creator><![CDATA[progwritter]]></dc:creator><pubDate>Thu, 14 Oct 2010 21:52:16 GMT</pubDate></item><item><title><![CDATA[Reply to Möglichkeiten berechnen. on Thu, 14 Oct 2010 22:24:25 GMT]]></title><description><![CDATA[<p>progwritter schrieb:</p>
<blockquote>
<p>SeppJ ja ich habe probleme mit der Konstruktur <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=":/"
      alt="😕"
    /> wie ich das alles am beten mache .. aber was für Fehler meinst du genau?</p>
</blockquote>
<p>Zum Beispiel dass i-1 nicht den Wert von i ändert, sondern dir den Wert von i-1 berechnet. Welcher in diesem Fall einfach im Nirvana landet.</p>
<p>Dann noch die schon angesprochene Verwendung von double.</p>
<p>Die vielen globalen einbuchstabigen Variablen schreien nach Fehlern.</p>
<p>Das struct hat keine ersichtliche Funktion.</p>
<p>Dann das hier: <code>void Ausgabe();</code><br />
Was glaubst du, macht das?</p>
<p>New_Sub_k und New_Sub_n in den Schleifen sind andere Variablen als die globalen. Das heißt das Ergebnis der Rechnung kommt nie aus der Schleife raus.</p>
<p>Exakter Vergleich bei Fließkommazahlen ist oftmals eine schlechte Idee (hier wirst du Glück haben und es wird funktionieren, aber so allgemein ist das nicht so gut).</p>
<p>Alle globalen Variablen werden uninitilaisiert benutzt. Außer New_k, dieses wird mit zwei uninitialiserten Werten initialisert, was natürlich viel besser ist <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>
<p>Die Benutzereingabe überschreibst du ein paar Zeilen später unbenutzt mit besagten uninitialiserten Werten.</p>
<p>Und noch einer: Deine Frage nach der Anzahl ist grammatikalisch falsch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> .</p>
<p>Das war jetzt bloß ein erstes Überfliegen. Wie du siehst, ist da eigentlich nichts zu retten, außer erst einmal etwas mehr C++ zu lernen und dann nochmal neu machen.</p>
<p>So, und nun ist Schluss für heute.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1965838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965838</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Oct 2010 22:24:25 GMT</pubDate></item><item><title><![CDATA[Reply to Möglichkeiten berechnen. on Fri, 15 Oct 2010 01:22:06 GMT]]></title><description><![CDATA[<p>Manchmal ist eine Zigarre einfach nur eine Zigarre.</p>
<pre><code class="language-cpp">int komb(int n,int k)
{
   int result=1;
   for(int i=n;i&gt;k-n;--i)
      result*=i;
   return result;
}

int main()
{
   cout &lt;&lt; &quot;Gib ein, wie viel Moeglichkeiten es gibt: &quot;;
   int n; cin &gt;&gt; n;
   cout &lt;&lt; &quot;Gib ein, wie viel Moeglichkeiten auswaehlbar: &quot;;
   int k; cin &gt;&gt; k;

   cout &lt;&lt; komb(n,k) &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1965891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965891</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Fri, 15 Oct 2010 01:22:06 GMT</pubDate></item><item><title><![CDATA[Reply to Möglichkeiten berechnen. on Fri, 15 Oct 2010 02:41:27 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Manchmal ist eine Zigarre einfach nur eine Zigarre.</p>
<pre><code class="language-cpp">int komb(int n,int k)
{
   int result=1;
   for(int i=n;i&gt;k-n;--i)
      result*=i;
   return result;
}
...
</code></pre>
</blockquote>
<p>for (int i = n; i&gt;<strong>n-k</strong>; --i)<br />
<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/1965898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1965898</guid><dc:creator><![CDATA[inter2k3]]></dc:creator><pubDate>Fri, 15 Oct 2010 02:41:27 GMT</pubDate></item></channel></rss>