![]() |
Mathematisches Problem - Werte zwischen N und M ausrechnen
Ich bin mal wieder zu blöd etwas zu berechnen. Wie immer.
Ich habe die Werte N und M und X. N und M ist ein bereich, der frei wählbar ist. Sagen wir mal N=0 und M=1024. X = 5. Es geht hier um das erzeugen von X Daten die eine Dateigröße von N bis M haben sollen. Wie berechne ich nun die Werte zwischen N und M damit ich weiß, wie groß jede X Dateien wird? |
AW: Mathematisches Problem - Zahlen zwischen N und M ausrechnen
Ich verstehe die Frage nicht ganz. Was soll X mit N und M zu tun haben?
Meine Interpretation:N und M geben Minimal- und Maximalgröße an, korrekt? Wenn die gesetzt sind, möchtest du jetzt X Dateien erzeugen, die zusammen nicht das Maximum überschreiten dürfen, oder wie? Dann interessiert dich N gar nicht, und Du mußt lediglich M durch X teilen, und erhältst den wert den alle X Dateien als Größe haben müssen. Sollten die X Dateien unterschiedlich groß sein dürfen, mußt du freilich kreativ werden. Sherlock |
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Zitat:
Zitat:
Wenn ich aber N=0, M=1024 habe und X=3, dann wäre das 341 pro Datei und N wird somit nicht berücksichtigt :( |
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Wenn ich das richtig verstanden habe, willst du X Dateien erstellen, deren Größe gleichmäßig im Bereich N bis M (jeweils einschließlich dieser Grenzen) verteilt ist?
Dann errechnet sich die Größe G der Datei i-ten Datei (i = 1..X) mit:
Delphi-Quellcode:
G[i] := N + (i-1)*(M - N)/(X-1);
Dabei ist natürlich vorher zu prüfen, ob auch X > 1 ist. |
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Zitat:
|
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Hab' ich noch nich' so ganz verstanden:
Bei den angegebenen Werten könnte es eine Datei mit 1 Byte, eine Datei mit 42 Byte, eine mit 66 Byte, eine Datei mit 1000 Byte und eine mit 1023 Byte Größe geben. Oder halt irgendwelche beliebigen anderen Werte von 0 bis 1024. Hauptsache nicht mehr oder weniger und 5 Dateien. Also ungefähr sowas:
Delphi-Quellcode:
Random liefert hier 'ne Zahl zwischen 0 und m - n.
Randomize;
for i := 1 to x do begin Dateigroesse := n + Random(m - n); end; Hier also 1024 - 0: Sprich eine Zahl von 0 bis 1024. Wenn m = 34567 ist und n = 12345 ist, dann wäre der Bereich 34567 - 12345 = 22222. Random liefert also einen Wert von 0 bis 22222. Wenn wir die Werte oben einsetzen käme dabei
Delphi-Quellcode:
heraus, also ein Zufallswert von 12345 bis 34567.
Dateigroesse := 12345 + Random(22222);
PS: Die grundsätzlich unterschiedlichen Antworten lassen darauf schließen, dass Deine Fragestellung noch präzisiert werden muss. Es scheinen noch erhebliche, sehr unterschiedliche, Interpretationsmöglichkeiten zur Fragestellung zu existieren. |
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Zitat:
Sherlock |
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Zitat:
(Lübbecke ist ein Schreibfehler, vor 50 Jahren hätte ich das auch noch gewußt) Gruß K-H |
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Zitat:
|
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Mein Problem hat sich dank eurer Hilfe lösen lassen. Vielen Dank.
|
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Magst Du nicht vielleicht doch die "finale Lösung" nennen, nur falls jemand anders auch vor diesem Problem steht...
Sherlock |
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Die "finale" Lösung ist leider etwas anders als vielleicht erhofft.
Statt den komplizierten Weg zu gehen und die Reigenfolge zwischen >N und <M zu berechnen, habe ich eine andere viel einfachere Lösung gefunden, die vollkommen ohne N und M klar kommt. Es wird einfach nur mit X (Anzahl Dateien) gearbeitet und einer fixen Dateigröße, die nach jedem i+1 hinzugefügt wird. |
AW: Mathematisches Problem - Werte zwischen N und M ausrechnen
Also wenn ich das richtig verstanden habe, ging es darum eine größere Datenmenge auf mehrere Dateien zu verteilen, wobei jede Datei maximal befüllt ist und in der letzten Datei die übrigen Bytes landen.
So korrekt? Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:56 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