Supportnet / Forum / Datenbanken
Zufallszahlen aber feste Summe (VBA)
Frage
Hi und guten Tag,
ich habe folgende Aufgabe zu lösen:
8 Variablen sollen bei jedem Lauf mit Zufallszahlen von einschliesslich 0 bis einschliesslich 9 gefüllt werden.
Die Summe der 8 Variablen soll aber immer 10 ergeben.
Kann mir jemand helfen? Danke schon mal.
Antwort 1 von Annika
Hallo
Hab für dich mal was geschrieben. Du musst dir aber bewusst sein, dass für die letzte Variable keine Zufallszahl generiert werden wird. Die letzte Variable ist einfach das Resultat von 10 minus die Summe der Variablen 1-7. Bin nicht sicher, ob das genau das ist was du brauchst, aber trotzdem:
Dim Variable(1 To 8) As Integer
Dim iCounter As Integer
Dim iSum As Integer
iSum = 0
For iCounter = 1 To 7
Variable(iCounter) = Int((IIf(iSum = 0, 9, 10 - iSum) + 1) * Rnd)
iSum = iSum + Variable(iCounter)
Next iCounter
Variable(8) = 10 - iSum
---Dieser Teil ist nur um den Output zu checken.
---Was du mit den Zahlen machen willst, weiss ich ja nicht
For iCounter = 1 To 8
Debug.Print iCounter & ": " & Variable(iCounter)
Next iCounter
Debug.Print "----"
Gruss,
Annika
Hab für dich mal was geschrieben. Du musst dir aber bewusst sein, dass für die letzte Variable keine Zufallszahl generiert werden wird. Die letzte Variable ist einfach das Resultat von 10 minus die Summe der Variablen 1-7. Bin nicht sicher, ob das genau das ist was du brauchst, aber trotzdem:
Dim Variable(1 To 8) As Integer
Dim iCounter As Integer
Dim iSum As Integer
iSum = 0
For iCounter = 1 To 7
Variable(iCounter) = Int((IIf(iSum = 0, 9, 10 - iSum) + 1) * Rnd)
iSum = iSum + Variable(iCounter)
Next iCounter
Variable(8) = 10 - iSum
---Dieser Teil ist nur um den Output zu checken.
---Was du mit den Zahlen machen willst, weiss ich ja nicht
For iCounter = 1 To 8
Debug.Print iCounter & ": " & Variable(iCounter)
Next iCounter
Debug.Print "----"
Gruss,
Annika
Antwort 2 von Joki245
Hey,
das ist genau das was ich brauche. Die Variable(8) ist ja sozusagen auch zufällig, da iSum sich ja auch zufällig ergibt.
Vielen lieben Dank!
Gruss,
Matze
das ist genau das was ich brauche. Die Variable(8) ist ja sozusagen auch zufällig, da iSum sich ja auch zufällig ergibt.
Vielen lieben Dank!
Gruss,
Matze