C# :: Aufgabe #303
6 Lösungen

Häufigkeit einer 6 beim Würfeln?!
Anfänger - C#
von DragStar
- 06.04.2020 um 08:34 Uhr
Verfassen Sie ein Programm, welches 25.000 mal, jeweils so lange das Würfeln mit einem Würfel simuliert, bis eine 6 erscheint.
Auszugeben ist, wie oft man dabei schlimmstenfalls würfeln musste.
Auszugeben ist, wie oft man dabei schlimmstenfalls würfeln musste.
Lösungen:
NET Core 3.x
C#-Code

using System; namespace CS_Aufgabe_303_Wuerfeln { class Program { static void Main(string[] args) { var counterMax = 0; var counter = 0; for (var i = 0; i < 25_000; i++) { if (new Random().Next(1, 7) != 6) counter++; else { if(counter > counterMax) counterMax = counter; counter = 0; } } Console.WriteLine($"Im schlimmsten Fall wurde {counterMax}x gewürfelt bis eine Sechs fiel."); } } }
Hallo,
habe mir das auch mal programmiert.
Ist interessant da herum zu spielen.
C#-Code
habe mir das auch mal programmiert.
Ist interessant da herum zu spielen.

using System; namespace Aufgabe_303 { internal class Program { private static void Main(string[] args) { int maximum = 1; int durchschnitt = 1; int totalzaehler = 0; int anzahl = 0; int wuerfeln() { Random rnd = new Random(); int zufallszahl = rnd.Next(0, 7); return zufallszahl; } Console.WriteLine("Hallo! Wie viele Versuche wollen Sie machen?"); anzahl = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i <= anzahl; i++) { int zaehler = 0; do { zaehler += 1; } while (wuerfeln() != 6); totalzaehler += zaehler; if (zaehler > maximum) { maximum = zaehler; } } durchschnitt = totalzaehler / anzahl; Console.WriteLine("Man muss man maximal {0} mal Würfeln bis eine 6 erscheint", maximum); Console.WriteLine("Der Durchschnitt beträgt {0} mal Würfeln", durchschnitt); Console.ReadKey(); } } }

using System; namespace Wuerfel6 { class Program { private static Random rnd = new Random(); static void Main(string[] args) { int count = 0; int maxCount = 0; for(int i = 0; i < 25000; i++) { if (Wuerfel()) { if (count > maxCount) maxCount = count; count = 0; continue; } count++; } Console.Write("Maximale Anzahl die benoetigt wurde eine 6 zu wuerfeln: " + maxCount); Console.ReadKey(); } private static bool Wuerfel() { int augenZahl = rnd.Next(1, 7); if (augenZahl == 6) return true; return false; } } }

using System; namespace Wuerfeln { class Program { static void Main(string[] args) { int zaehler; int ergebnis = 0; int anzahl = 0; Random rnd = new Random(); for (int i = 1; i <= 25000; i++) { zaehler = 0; do { ergebnis = (rnd.Next(1, 7)); zaehler++; } while (ergebnis != 6); if (zaehler > anzahl) { anzahl = zaehler; } } Console.WriteLine(anzahl); } } }

using System; using System.Collections.Generic; using System.Linq; namespace Unlucky6 { class Program { static void Main(string[] args) { int counter = 0; int throws = 0; int currentThrow = 0; Random rnd = new Random(); //Initialisierung von Random List<int> tries = new List<int>(); //Erstellung einer Liste für die Maximalwürfe do { currentThrow = rnd.Next(1, 7); //Random 1,7 bedeutet beginnend bei 1 und endet bei 6! throws++; //1 extra Wurf if (currentThrow == 6) //Wenn eine 6 gewürfelt wurde { tries.Add(throws); //Hinzufügen wieviele Würfe --> Liste throws = 0; //Zurücksetzen von Wurf-Counter } counter++; //Allgemeiner Counter } while (counter < 25000); int max = tries.Max(); //Der größte Wert der Liste Console.WriteLine(max); //Ausgabe Console.ReadKey(); } } }
// NET Core 3.x
C#-Code

using System; using System.Linq; namespace CS_Aufgabe_303_Wuerfeln_bis_zur_Sechs { class Program { static void Main(string[] args) { var lst = Enumerable.Range(1, 25_000).Select(x => (x, new Random().Next(1, 7))).Where(x => x.Item2 == 6).Select(n => n.x).ToList(); var max = Enumerable.Range(0, lst.Count - 1).Select(i => lst[i + 1] - lst[i]).Max(); Console.WriteLine($"Im schlechtesten Fall wurde {max}x gewürfelt bis eine 6 fiel!"); } } }