Hey Community, Ich stehe vor einem Problem bei dem ich nicht weiß wie ich es am besten umsetzen soll Zuerst, was habe ich vor : Ich möchte ein T[] in mehrere kleine arrays unterteilen (mit random größen) und dann ein T[][] zurückgeben, also ein array welches die einzelnen kleineren arrays enthält. Wichtig ist das die Arrays schön ihre Reihenfolge behalten. Das konnte ich so umsetzen: (Dickes dankeschön an @~blaze~ ) C#-Quellcode (20 Zeilen) Zum Problem. Der obrige algorithmus funktioniert recht …
Das wird aber nicht leicht, denn mir sind ja die Grenzen nicht bekannt: C#-Quellcode (1 Zeile) Wenn ich eine Untergrenze von sagen wir ca 3 nehme, aber mein maximum ist nur 2, gibts probleme? Kann ich nicht automaticsh irgendwie einen Wert wählen der etwas abweicht?
@Artentus : Oje, jetzt hast du mich verwirrt.. Angenommen ich lege fest dass es sinnvoll ist jedem Teil-Array ca die Anzahl an Items zuzuweisen, die der Wurzel des Inputs entsprechen, mit einer Abweichung von +-2. Wie würde dann die Zuweisung von Quellcode (1 Zeile) aussehen?
@Mokki : Aber die Anzahl der Output array ist ja nicht imemr 4 sondern auch random. Ich habs so versucht : C#-Quellcode (1 Zeile) Aber dann passiert genau das minvalue > maxvalue -> Crash
@Mokki : Genau das ist ja das Problem Deswegen weiß ich nicht wie ich C#-Quellcode (1 Zeile) auscwählen soll, das im Startpost genannte Bedingungen zutreffen..
Zitat von petaod: „Setze die Grenzen so: rnd.Next(Min(BerechneterUntererWert,ObererWert),ObererWert)“ ObererWert wäre ja dann : C#-Quellcode (1 Zeile) , oder? Aber was wäre UntererWert? Ich verstehs einfach nicht wie sich der zusammensetzen soll
Zitat von Mokki: „So: C#-Quellcode (1 Zeile) Falls eine Abweichung von max. 10% bestehen soll. “ Danke für deine Hilfe, aber das scheint nicht richtig zu funktionieren (Input größe des Arrays waren 29 items) fe09c36828.png
Zitat von ThePlexian: „Wenn du nichtmal angeben willst, wie viele Teilarrays rauskommen sollen, würde ich das so machen. Zur Veranschaulichung hat unser Array mal 30 Items. 1. Eine Zufallszahl wählen, die etwa die Größe eines Teilarrays vorgibt. Ich würde vllt int size = rnd.Next(30 * 0.1, 30 * 0.4); vorschlagen. 2. Dann wie gehabt fortsetzen, aber für die Arraygröße jetzt folgende Grenzen wählen : int c = rnd.Next(size - (size * 0.5), size + (size * 0.5)); Dann wird bei größeren Arrays auch die…