Diese Anwendung verwendet eine Instanz von Zufällig() Klasse im Objekt rnd. Außerdem wird genügend Speicherplatz zugewiesen, um die Gesamtsummen für die Punkte 3 bis 18 im Array aufzunehmen Rollen[]. Mitglied Funktionen OneDice () gibt einen Wert zwischen 1 und 6 zurück - rnd.Next (n) gibt Werte im Bereich von 0… n-1 zurück, während ThreeDice () Anrufe OneDice () drei Mal. Der Konstruktor für die Würfeln() löscht die Rollen Array ruft dann auf ThreeDice () aber oft (10 Millionen in diesem Fall) und erhöht die entsprechende Rollen[] Element.
Der letzte Teil besteht darin, die generierten Summen auszudrucken, um zu sehen, dass sie gemäß den Wahrscheinlichkeiten Würfe erzeugen. Ein 6-seitiger Würfel hat eine durchschnittliche Punktzahl von 3,5, drei Würfel sollten also durchschnittlich etwa 10,5 sein. Die Summen für 10 und 11 sind ungefähr gleich und treten in etwa 12,5% der Fälle auf.
Hier ist die Ausgabe eines typischen Laufs. Es dauert nicht länger als eine Sekunde. Da es sich um eine Konsolenanwendung handelt, habe ich eine
Console.ReadKey ();
Warten, bis Sie eine Taste drücken, bevor Sie schließen.
3 46665
4 138772
5 277440
6 463142
7 693788
8 971653
9 1157160
10 1249360
11 1249908
12 1159074
13 972273
14 695286
15 463270
16 277137
17 138633
18 46439
using System;
using System.Collections.Generic;
using System.Text;
Namespace exrand
öffentliche Klasse RollDice
private Random rnd = new Random ();
private int [] Rolls = new int [19]; // Hält 3 bis 18
public int OneDice ()
return rnd.Next (6) +1;
public int ThreeDice ()
return OneDice () + OneDice () + OneDice ();
public RollDice (int Count)
int i = 0;
für (i = 3; i