Fragen zur Aufgabenstellung einsehen

14 Lösungen Lösungen noch nicht öffentlich
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.

Bacon2008

Punkte: 260


13 Lösungen
2 Kommentare

#1
28.01.2015 um 16:54 Uhr
Hallo,

hach habe ein Programm geschrieben und auf 140.000.000 Versuche beschränkt. Nach 10 maligem Ausführen hatte ich leider keine Übereinstimmung.

Kann es sein, dass icheinfach pech hatte oder so ein Programm schonmal länger laufen muss? Bei solch abnormal geringen Trefferchancen hab ich leider keine Vorstellung mehr von passenden Wartezeiten.

Hier mal meine Schleife für die Durchgänge:

Quellcode ausblenden C#-Code
do{
			int zv1 = Zr.Next(1,50);
			zv1speicher = zv1;
			gefZahlen.Add(zv1);
			zv1 = Zr.Next(1,50);
			while(zv1==zv1speicher){zv1 = Zr.Next(1,50);}
			gefZahlen.Add(zv1);
			zv2speicher = zv1;
			zv1 = Zr.Next(1,50);
			while(zv1==zv1speicher || zv1==zv2speicher){zv1 = Zr.Next(1,50);}
			gefZahlen.Add(zv1);
			zv3speicher = zv1;
			zv1 = Zr.Next(1,50);
			while(zv1==zv1speicher || zv1==zv2speicher || zv1==zv3speicher){zv1 = Zr.Next(1,50);}
			gefZahlen.Add(zv1);
			zv4speicher = zv1;
			zv1 = Zr.Next(1,50);
			while(zv1==zv1speicher || zv1==zv2speicher || zv1==zv3speicher
			     || zv1==zv4speicher){zv1 = Zr.Next(1,50);}
			gefZahlen.Add(zv1);
			zv5speicher = zv1;
			zv1 = Zr.Next(1,50);
			while(zv1==zv1speicher || zv1==zv2speicher || zv1==zv3speicher
			     || zv1==zv4speicher || zv1==zv5speicher){zv1 = Zr.Next(1,50);}
			gefZahlen.Add(zv1);
			zv6speicher = zv1;
			ii++;

  //gegZahlen ist eine Liste mit den 6 eingegebenen Zahlen
  //gefZahlen ist die Liste mit den generierten Zahlen

			if (gegZahlen!=gefZahlen) {gefZahlen.Clear();}	
			if(ii==140000000){Console.WriteLine("weiter?");Console.ReadKey(true);}
			}while (gefZahlen!=gegZahlen);
post_arrow
67 0

Bacon2008

Punkte: 260


13 Lösungen
2 Kommentare

#2
29.01.2015 um 15:54 Uhr
Ah habe meinen denkfehler erkannt.


man kann 2 listen nicht einfach mit "==" vergleichen *vor den kopf hau*. hab bissl getüftelt und eine elegantere lösung gefunden (siehe lösung)
post_arrow
68 0
Bitte melden Sie sich an um zu antworten.
Antworten