C# :: Aufgabe #13 :: Lösung #13
14 Lösungen

#13
Lotto - Simulation - 6 aus 49
Anfänger - C#
von Gustl
- 25.11.2012 um 16:16 Uhr
Schreiben Sie ein Programm, welches 6 Zahlen zwischen 1 und 49 abfrägt. Danach soll das Programm solange 6 Zufallszahlen berechnen bis alle 6 eingegebenen Zahlen übereinstimmen. Natürlich darf eine Zahl nicht zweimal vorkommen.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
Dann soll ausgegeben werden nach wie vielen "Spielen" ein 6er erzielt wurde und wie hoch die Chance auf einen 3er, einen 4er und einen 5er war.
#13

von gutti (100 Punkte)
- 03.10.2019 um 19:21 Uhr
Ich habe die Aufgabe minimal abgewandelt. So nutze ich eine Zufallszahlenmethode, um eine Tippreihe zu erstellen und um die Tippdurchläufe zu gestalten.
Bis auf die Auswertung nach explizit Dreier, Vierer, Fünfer ist die Prüf- und Durchlaufroutine (6 aus 49) per Variable steuerbar (oder per Abfrage flexibel gestaltbar).
C#-Code
Bis auf die Auswertung nach explizit Dreier, Vierer, Fünfer ist die Prüf- und Durchlaufroutine (6 aus 49) per Variable steuerbar (oder per Abfrage flexibel gestaltbar).

using System; namespace Übung13_Lotto { class Program { static void Main(string[] args) { Random rnd = new Random(); int zugZahl = 6, kugelZahl = 49, versuchAnzahl=0; int zaehler = 0; int[] lottoMatrix = Zufallszahl(zugZahl, kugelZahl, rnd); int[] gewinn = new int[zugZahl+1]; double dreier, vierer, fünfer; Console.WriteLine("Lottozahlen: "); foreach (int ii in lottoMatrix) { Console.WriteLine(ii); } do { int[] tippMatrix = Zufallszahl(zugZahl, kugelZahl, rnd); versuchAnzahl++; foreach (int lotto in lottoMatrix) { foreach (int tipp in tippMatrix) { if (lotto == tipp) { zaehler++; break; } } } gewinn[zaehler]++; zaehler = 0; } while (gewinn[zugZahl] == 0); Console.WriteLine(); Console.WriteLine("Sechser!!!, Durchlauf wird beendet!"); Console.WriteLine("Anzahl Versuche: " + versuchAnzahl); Console.WriteLine(); for (int zahl=3; zahl<=zugZahl; zahl++) { Console.WriteLine((zahl)+": "+gewinn[zahl]); } Console.WriteLine(); dreier = Math.Round(((double)gewinn[3] * 100 / versuchAnzahl), 2); vierer = Math.Round(((double)gewinn[4] * 100 / versuchAnzahl), 2); fünfer = Math.Round(((double)gewinn[5] * 100 / versuchAnzahl), 2); Console.WriteLine("Die Wahrscheinlichkeit für einen Dreier beträgt {0}%, \nfür einen Vierer {1}% und \nfür einen Fünfer {2}%", dreier, vierer, fünfer); Console.ReadKey(); } static public int[] Zufallszahl(int anzahl, int grenze, Random rnd) { int zzahl; int[] lottozahlen = new int[anzahl]; bool einschreiben = false; for (int i = 0; i < anzahl; i++) { zzahl = rnd.Next(1, grenze + 1); for (int j = 0; j <= i; j++) { if (zzahl == lottozahlen[j]) { i--; einschreiben = false; break; } else einschreiben = true; } if (einschreiben) { lottozahlen[i] = zzahl; einschreiben = false; } } Array.Sort(lottozahlen); return lottozahlen; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1