vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
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:  Views:  22.219 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 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



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.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle 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.