ist einfach umzusetzen, allerdings wirst du in dem meisten reihen viele leere Körbe bekommen, wenn du kein sinnvolles Maximum pro Korb setzt.
Code: Alles auswählen
EnableExplicit
; Startwerte, nimm was du willst
Define Koerbe = Random(20) + 4
Define Aepfel = Random(100) + Koerbe
Define AlleAepfel
Define DieserKorb
Define n, sum
Define out$
Dim Korb(Koerbe)
Debug Str(Aepfel) + " Äpfel in " + Str(Koerbe) + " Körben."
Debug "------------------------------"
For n=1 To Koerbe
DieserKorb = Random(Aepfel)
If AlleAepfel + DieserKorb > Aepfel
DieserKorb = Aepfel - AlleAepfel
EndIf
AlleAepfel + DieserKorb
Korb(n) = DieserKorb
Debug "In Korb " + Str(n) + " sind " + Str(DieserKorb) + " Äpfel."
Next
Debug "=================="
Debug "Probe:"
out$ = Str(Korb(1))
sum = Korb(1)
For n=2 To Koerbe
out$ + " + " + Str(Korb(n))
sum + Korb(n)
Next
out$ + " = " + Str(sum)
Debug out$
Maximum pro Korb ist das Dreifache des Durchschnitts:
Code: Alles auswählen
EnableExplicit
; Startwerte, nimm was du willst
Define Koerbe = Random(20) + 4
Define Aepfel = Random(100) + Koerbe
Define MaxProKorb = Aepfel / Koerbe * 3
Define AlleAepfel
Define DieserKorb
Define n, sum
Define out$
Dim Korb(Koerbe)
Debug Str(Aepfel) + " Äpfel in " + Str(Koerbe) + " Körben."
Debug "------------------------------"
For n=1 To Koerbe
DieserKorb = Random(MaxProKorb)
If AlleAepfel + DieserKorb > Aepfel
DieserKorb = Aepfel - AlleAepfel
EndIf
AlleAepfel + DieserKorb
Korb(n) = DieserKorb
Debug "In Korb " + Str(n) + " sind " + Str(DieserKorb) + " Äpfel."
Next
Debug "=================="
Debug "Probe:"
out$ = Str(Korb(1))
sum = Korb(1)
For n=2 To Koerbe
out$ + " + " + Str(Korb(n))
sum + Korb(n)
Next
out$ + " = " + Str(sum)
Debug out$