Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zufallszahlen Generierung
#1
Hallo zusammen :43:,

suche einen Code oder eine Formel, mit dem sechs Zufallszahlen für Lotto 6 aus 49 in spezieller Weise generiert werden. Jede Zufallszahl sollte separat gezogen werden. Die Anzahl der Erzeugung soll in einer Zelle eingetragen werden können: z. B. soll für jede der sechs Zahlen 100.000 Mal gelost/simuliert werden. Also Excel erstellt 100.000 Mal eine Zufallszahl und überträgt diese in eine andere Zelle; dann macht es das 100.000 Mal mit der zweiten Zahl bis zur sechsten. 
Hat jemand einen Vorschlag, wie das aussehen könnte?

:90: 
Antworten Top
#2
Hi,

was soll das werden? Ich kann Dir gerade nicht folgen.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
Hi,

Code:
Option Explicit

Sub ll()
Randomize
Dim arr(1 To 100000, 1 To 6)
Dim lngR As Long, y As Integer, i As Integer
For lngR = 1 To 100000
    For i = 1 To 6
        arr(lngR, i) = Int(49 * Rnd + 1)
        For y = 1 To i - 1
            If arr(lngR, i) = arr(lngR, y) Then
                i = i - 1
                Exit For
            End If
        Next
    Next
Next
Range("A1:F100000").Value = arr
End Sub
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • Ser.Styven
Antworten Top
#4
Hallo Chris,

im Prinzip war deine Lösung gut :28:. Ich habs Mal mit 5.000.000 getestet. So viele Zeilen zu erstellen schafft Excel 2010 aber nicht und stürzt ab. 
Geht das auch ohne Erstellung von so vielen Zellen, also dass die Auslosung in sechs Zellen stattfindet?
Antworten Top
#5
Hi,

Excel schaft auch keine 1.048.577 Zeilen.... da die Zeilenanzahl begrenzt ist auf 1.048.576
Natürlich könnte ich jetzt in 6 Zellen das 5 Mill. mal überschreiben lassen
aber mir entzieht sich dabei der Sinn. Wenn du so nett sein würdest und uns beschreibst was du eigentlich erreichen willst.....

ggf. kann ja jemand weiterhelfen, ich bin mal wieder offline für eine Weile.
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#6
Hallo Chris und Opa Edgar,

das soll halt quasi Lottoziehungen simulieren, nur eben nicht ein Mal, sondern viele Ziehungen. Mein Gedanke ist der:
es gibt ja schon Rechner im Inet, mit denen man emulieren kann, wie lange man bräuchte, um einen Sechser zu kriegen - die rechnen dann meist so 5.000 Jahre oder mehr aus. Ich will quasi dem zuvor kommen und viele Ziehungen spielerisch emulieren können - auch, wenn ein Mathematiker vom Kopf her sagen wird, dass alle Zufallszahlen statistisch gleich hohe Chancen haben, ob nun ein Mal oder 1.000.000 Mal generiert.

:21:
Antworten Top
#7
Hi,

das Makro eben 5x durchlaufen lassen und in nebeneinanderliegende Bereiche schreiben:

Code:
Option Explicit

Sub ll()
Randomize
Dim arr(1 To 1000000, 1 To 6)
Dim lngR As Long, y As Integer, i As Integer, lngA As Long
For lngA = 1 To 5
    For lngR = 1 To 1000000
        For i = 1 To 6
            arr(lngR, i) = Int(49 * Rnd + 1)
            For y = 1 To i - 1
                If arr(lngR, i) = arr(lngR, y) Then
                    i = i - 1
                    Exit For
                End If
            Next
        Next
    Next
    Range(Cells(1, (lngA - 1) * 7 + 1), Cells(1000000, lngA * 7 - 1)).Value = arr
    Erase arr
Next
End Sub
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Ser.Styven
Antworten Top
#8
Hallo Opa Edgar,

du bist ein toller Opa! Vielen Dank für deine Hilfe und deine Mühe! Du hast meinen Wunsch erfüllt. 

:19:
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste