![]() |
Zahlen "verteilen"
Hallo,
wie kann ich Zahlen von z.b. 1-100 zufällig in 4 verschiedene "Portionen" aufteilen? Gruß Spurius |
Re: Zahlen "verteilen"
Möcghtest du 4 Zufallszahlen zwischen 1 und 100, oder 4 Zufallszahlen die zusammen 100 ergeben ?
|
Re: Zahlen "verteilen"
Ich habe die Zahlen von 1-100 und möchte die zufällig aufteilen.
|
Re: Zahlen "verteilen"
du könntest eine liste machen, wo du erst alle zahlen reinschreibst und dann immer eine zufällige rausnimmst. das 25 mal. dann hast du eine portion. dann noch zwei mal und die restlichen drei portionen stehen fest.
wäre eine möglichkeit |
Re: Zahlen "verteilen"
Dann lass dir 3 zufällige Zahlen (hier mal n1 bis n3) zwischen 0 und 100 erzeugen, und dann ist halt:
0 <= n1 < n2 < n3 <= 100 ...also die Grenzen der Pakete zufällig erzeugen |
Re: Zahlen "verteilen"
ich glaub so war es nicht gemeint...
|
Re: Zahlen "verteilen"
[OT]...dann müsste "man" sich präziser ausdrücken ;)[/OT]
|
Re: Zahlen "verteilen"
Hallo,
sry wenn ich das Problem etwas "unpräzise" beschrieben hab. Die Lösung von Nailor find ich gut, nur wie kann ich die Zahlen zufällig rausnehmen? Weil die sollen danach ja nicht neu durchnummeriert werden, sondern ihre Werte behalten. Dauert das nicht zu lange? Weil wenn random z.B. die letzte Zahl nicht liefert, dauert das ja ne ganze Weile, bis die erwischt wird. |
Re: Zahlen "verteilen"
sieh dich nach einer einfach oder doppelt verketteten liste um. dann nimm immer ein element per zufälligem index (maximaler index --> anzahl vorhandene elemente) raus, und lass die anderen eins nachrücken (deshalb kein array sondern liste, auch wenn die eventuell langsamer beim durchsuchen ist. aber wenn man die länge speichert und nicht immer neu ermittelt, sollten sich die kompletten durchläufe auf ein minimum beschränken und die ganze sache sehr schnell sein. und bei 100 zahlen macht das eh nichts aus. da müsstest du schon tausende/millionen von zahlen haben, damit das langsam wird.
|
Re: Zahlen "verteilen"
wieso so kompliziert?!
mach das genau anderst herum :!: Pseudocode:
Code:
FOR "zahl" = 1 to 100
{ nimm "zahl" in die Liste mit der Nummer ZUFALL(1..4) auf } |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz