Hallo allerseits,
ich suche eine Möglichkeit ein Feld zu erzeugen, wo ich einen Startwert, einen Endwert einen Anfangsabstand der aufeinanderfolgenden Zahlen und einen Endabstand der Einträge vorgeben kann.
Ich habe gerade ein wenig in numpy gestöbert, habe aber nix gefunden. Kennt sich jemand besser aus und weiß vielleicht ob es da was vorgefertigtes gibt?
Zahlenfeld mit nicht konstantem Abstand
-
- User
- Beiträge: 20
- Registriert: Montag 9. Juni 2008, 14:17
- Wohnort: Halle/Saale
Carsten1983 hat geschrieben:ich suche eine Möglichkeit ein Feld zu erzeugen, wo ich einen Startwert, einen Endwert einen Anfangsabstand der aufeinanderfolgenden Zahlen und einen Endabstand der Einträge vorgeben kann.

-
- User
- Beiträge: 20
- Registriert: Montag 9. Juni 2008, 14:17
- Wohnort: Halle/Saale
Klar 
Es soll also der Abstand des ersten zum zweiten Eintrages gleich 1/10 des Abstandes vom vorletztem zum letzten Eintrag sein. Der Abstand der Einträge zwischen diesen beiden Grenzen soll permanent anwachsen.
Ich hoffe das war durchschaubar

Code: Alles auswählen
Startwert = 0, Endwert = 100, Anfangsabstand = 1, Endabstand = 10.
[0, 1, ..., 90, 100]
Ich hoffe das war durchschaubar

Also mit "Feld" meinst du offenbar eine Liste. Ok. Den Rest verstehe ich immer noch nicht. Wie würde denn deine Beispiel-Zahlenfolge weitergehen nach der 1? Und was heißt "permanent" ansteigen? Linear? Exponentiell? Würde man den Abstand z.B. in Einerschritten erhöhen, dann käme man nicht beim gewünschten Ergebnis raus:
Code: Alles auswählen
>>> ls = [0]
>>> for d in range(1,11): ls.append(ls[-1]+d)
>>> ls
[0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55]
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich glaube kaum, dass es da was fertiges geben wird...
... denn es sind noch zu viele Parameteter offen!
- wie vergrößert sich der Abstand? Immer um eins? Wenn ja, muss man viele Ausgangsangaben als ungültig kennzeichnen
- wie sollen die Abstände denn steigen? Linear oder progressiv?
Du solltest erst einmal einige kleine Beispiele auf dem Papier ausprobieren, dann siehst Du, was ich meine
Also da müßtest Du wohl noch ein wenig Hirnschmalz investieren 
... denn es sind noch zu viele Parameteter offen!
- wie vergrößert sich der Abstand? Immer um eins? Wenn ja, muss man viele Ausgangsangaben als ungültig kennzeichnen
- wie sollen die Abstände denn steigen? Linear oder progressiv?
Du solltest erst einmal einige kleine Beispiele auf dem Papier ausprobieren, dann siehst Du, was ich meine

Code: Alles auswählen
# (start, stop), (step_start, step_stop)
(1, 10), (1, 2)
->
1, 2, 3, 4, 6, 8, 10
oder
1, 2, 3, 5, 7, 9, 11
(1, 10), (1, 3)
->
progressiv:
1, 2, 3, 5, 7, 10
oder linear:
1, 2, 4, 6, 9, 12
(1, 10), (1, 5)
->
geht so gar nicht, da es keine 5 Schritte innerhalb von 10 geben kann:
1, 2, 4, 7, 11, 16
Bei 11 wäre schon Schluss (wenn man die nächst größere Zahl zulässt, sonst schon vorher)

So sehe ich das auch.Hyperion hat geschrieben:Also da müßtest Du wohl noch ein wenig Hirnschmalz investieren
Das Problem dürfte weniger die Implementierung sein, sondern die Präzisierung und mathematische Aufbereitung der Problemstellung.