vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: Verschiedenes / Sonstiges   |   VB-Versionen: VB4, VB5, VB623.04.01
Würfel-Simulation

Ermitteln der durchschnittlichen Anzahl von Würfen bei einer vorgegebener Anzahl Versuchserien, bis eine Sechs geworfen wird.

Autor:   Dieter OtterBewertung:     [ Jetzt bewerten ]Views:  19.868 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Dieser Tipp entstammt aus einem aktuelle Forenbeitrag. Die Frage war, wieviele Wurfversuche man durchschnittlich benötigt, um eine Sechs zu werfen - und das bei einer vorgegebener Anzahl von Versuchsserien.

Dim MaxVersuch As Long
Dim AktVersuch As Long
Dim AktWurf As Long
Dim GesWurf As Long
Dim Schnitt As Long
Dim Zahl As Integer  
 
MaxVersuch = 10  ' Anzahl Versuchsserien
AktVersuch = 1
 
While AktVersuch <= MaxVersuch
  AktWurf = 1
  Do
    ' Zufallszahl zurücksetzen
    Randomize -Timer    
 
    ' Anzahl Würfe zählen
    AktWurf = AktWurf + 1    
 
    ' Zufallszahl ermitteln
    Zahl = Int(6 * Rnd + 1)
  Loop Until Zahl = 6    
 
  ' Gesamt-Würfe
  GesWurf = GesWurf + AktWurf    
 
  ' Aktuelle Anzahl Versuche
  AktVersuch = AktVersuch + 1
Wend 
 
' Durchschnitt anzeigen
Debug.Print "Bei " & MaxVersuch & " Versuchsserien, " & _
  "mußte im Schnitt " & _
  Format$(GesWurf / MaxVersuch, "0.0") & _
  " x gewürfelt werden"

Erläuterungen zur Rnd-Funktion
Das Ermitteln einer Zufallszahl erfolgt in Visual-Basic mit Hilfe der Rnd-Funktion. Die Rnd-Funktion gibt hierbei eine Zahl im Berich 0 und <1 zurück. Um nun eine Ganzzahl in einem vorgegebenen Wertebereich zufällig zu ermitteln, geht man folgendermaßen vor:

Zahl = Int((Obergrenze - Untergrenze + 1) * Rnd + 1)

Obergrenze steht für die höchste Zahl und Untergrenze für die niedrigste Zahl. Das bedeutet also für das Würfel-Experiment:

Zahl = Int((6 - 1 + 1) * Rnd + 1)

was ja gleichbedeutend ist mit:

Zahl = Int(6 * Rnd + 1)

Zu beachten ist noch, daß Rnd immer die selben Zufallszahlen generiert. Um dies zu verhindern, dient der Ausdruck:

Randomize -Timer

Dieser Tipp wurde bereits 19.868 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel