myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Wie kann man Lotto: 6 aus 49 mit Rekursionen lösen?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

geschlossen (weitere Infos)
Zum Ende der Seite springen  

Wie kann man Lotto: 6 aus 49 mit Rekursionen lösen?

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
darby
myCSharp.de-Mitglied

Dabei seit: 23.01.2019
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Thüringen


darby ist offline

Wie kann man Lotto: 6 aus 49 mit Rekursionen lösen?

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo :)

Wir hatten in der Berufsschule eine Aufgabe bekommen ein Lotto Programm zu schreiben,
welches alle möglichen Kombinationen für 6 aus 49 ausgibt.

C#-Code:
            public void AlleKombinationenAusgeben()
            {
                Console.Title = "Lotto: 6 aus 49";

                /* Try-Catch Block */
                try
                {
                    for (int a = 1; a < 45; a++)
                    {
                        for (int b = a + 1; b < 46; b++)
                        {
                            for (int c = b + 1; c < 47; c++)
                            {
                                for (int d = c + 1; d < 48; d++)
                                {
                                    for (int e = d + 1; e < 49; e++)
                                    {
                                        for (int f = e + 1; f < 50; f++)
                                        {
                                            zaehler++;
                                            neuer_zaehler = zaehler.ToString("N0");
                                            Console.WriteLine(a + " " + b + " " + c + " " + d + " " + e + " " + f + " | -> " + neuer_zaehler);
                                            if (zaehler == max_kombinationen)
                                            {
                                                Console.ForegroundColor = ConsoleColor.Green;
                                                Console.WriteLine($"Es wurden {neuer_zaehler} Kombinationen wurden erstellt!");
                                                Console.ReadKey();
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Fehler: " + ex);
                    Console.ReadKey();
                }
        }
   }

Das ist mein Code.
Funktionieren tut er auch nur hat der Lehrer gesagt wir sollen das mal mit Rekursiven Programmieren versuchen. Nur habe ich ehrlich gesagt absolut keine Ahnung wie ich das angehen soll :/
Hoffe ihr könnt mir etwas helfen

Lg, darby
Neuer Beitrag 23.01.2019 11:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
pinki
myCSharp.de-Mitglied

avatar-4072.jpg


Dabei seit: 24.08.2008
Beiträge: 675
Herkunft: OWL


pinki ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo und willkommen darby,

du könntest mal schauen, was für Parameter du hast und entsprechend versuchen deine Methode aufzubauen.


Ich weiß jetzt nicht, wie sehr du in die Richtung eines Ansatzes geschubst werden möchtest.
Deshalb halte ich es erstmal recht vage und würde dann evtl. später spezifischer werden, falls das noch nicht genug hilft.
Neuer Beitrag 23.01.2019 11:28 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
darby
myCSharp.de-Mitglied

Dabei seit: 23.01.2019
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Thüringen

Themenstarter Thema begonnen von darby

darby ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Was mir gerade einfällt...

Ich habe noch eine etwas Dynamischere Methode

C#-Code:
for (int i = 0; i < ziehungen; i++)
                    {

                        for (int j = 0; j < wieviel; j++)
                        {

                            /* Neue Zahlen werden hier Zufällig generiert */

                            int neuezahlen = generator.Next(1, von + 1);

                            /* Überprüfen ob eine Zahl bereits vorhanden ist -> Wenn ja wird eine neue gezogen */
                            while (zahlen.Contains((neuezahlen)))
                            {
                                neuezahlen = generator.Next(1, von + 1);
                            }

                            zahlen[j] = neuezahlen;

                        }

                        int[] filterzahlen = zahlen.Distinct().ToArray();

                        /* Ausgeben der Zahlen */
                        zaehlerEigenesSpiel++;
                        Console.WriteLine((string.Join(" ", filterzahlen) + " | -> " + zaehlerEigenesSpiel));

                        /* Wenn der zaehlerEigenesSpieler die Anzahl an Ziehungen erreicht hat stoppt er und man bekommt eine Nachricht */
                        if (zaehlerEigenesSpiel == ziehungen)
                        {

                            Console.ForegroundColor = ConsoleColor.Green;
                            Console.WriteLine($"Es wurde {ziehungen}x gezogen von dem Spiel {ersteZahl} aus {zweiteZahl}");
                            Console.ReadKey();
                            Environment.Exit(1);
                        }
                    }

Wäre es nicht sogar möglich die andere Methode da irgendwie einzubauen?
Neuer Beitrag 23.01.2019 11:46 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
darby
myCSharp.de-Mitglied

Dabei seit: 23.01.2019
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Thüringen

Themenstarter Thema begonnen von darby

darby ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hmm.. als ich mir deinen Tipp durchgelesen habe hatte ich schon mir denken wie es geht
nur mangelt es bei mir an der Umsetzung :/
Neuer Beitrag 23.01.2019 12:06 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
pinki
myCSharp.de-Mitglied

avatar-4072.jpg


Dabei seit: 24.08.2008
Beiträge: 675
Herkunft: OWL


pinki ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Welche Gedanken hattest du denn und wo sitzt der Knoten im Kopf?
Neuer Beitrag 23.01.2019 12:10 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
darby
myCSharp.de-Mitglied

Dabei seit: 23.01.2019
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Thüringen

Themenstarter Thema begonnen von darby

darby ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich hätte es so machen wollen das ich in der der Dynamischeren Methode eine If-Abfrage eingebaut hätte die geschaut ob ein Wert einfach auf 1 oder 2 steht und bei 1 hätte ich dann eben das so gemacht das er sich 6 Zahlen ( 1 2 3 4 5 6 ) nimmt die 6 bis 49 hochzählt und dann die 6 auf 7 stellt und die 5 auf 48 hochzählt und immer so weiter :/

Aber das klingt irgendwo sehr nach viel zu vielen Abfragen...

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von darby am 23.01.2019 12:23.

Neuer Beitrag 23.01.2019 12:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.262
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von darby:
Das ist mein Code.

Bist Du Dir sicher? Den Code findet man so sofort im Internet, der aber nicht funktioniert.
Code evtl. einfach nur von dort kopiert, als Deinen verkauft und wir sollen ihn nun fixen? ;-)
Neuer Beitrag 23.01.2019 13:04 Beiträge des Benutzers | zu Buddylist hinzufügen
pinki
myCSharp.de-Mitglied

avatar-4072.jpg


Dabei seit: 24.08.2008
Beiträge: 675
Herkunft: OWL


pinki ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

War nicht ein rekursiver Ansatz gesucht?
Neuer Beitrag 23.01.2019 13:11 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
darby
myCSharp.de-Mitglied

Dabei seit: 23.01.2019
Beiträge: 5
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Thüringen

Themenstarter Thema begonnen von darby

darby ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
Zitat von darby:
Das ist mein Code.

Bist Du Dir sicher? Den Code findet man so sofort im Internet, der aber nicht funktioniert.
Code evtl. einfach nur von dort kopiert, als Deinen verkauft und wir sollen ihn nun fixen? ;-)

Ich bin mir so ziemlich sicher das ich den nicht irgendwoher kopiert habe..
Neuer Beitrag 23.01.2019 13:26 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.262
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

D.h. Du bist mit identischem Code auch in  anderen Foren unterwegs, um nach Hilfe zu fragen - und selbst  dort mehrfach? Teufel

Das verstößt gegen die Forenregeln und jede Art von Anstand. Das ist nicht nur unhöflich, das ist unverschämt. Achtung
Siehe Cross Post in  [Hinweis] Wie poste ich richtig?

Daher ist hier damit auch hier zu :-)
PS: danke an die Melder! Daumen hoch
Neuer Beitrag 23.01.2019 14:10 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 10 Monate.
Der letzte Beitrag ist älter als 10 Monate.
geschlossen (weitere Infos)


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 15.12.2019 03:16