Zahlenfeld mit nicht konstantem Abstand

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Carsten1983
User
Beiträge: 20
Registriert: Montag 9. Juni 2008, 14:17
Wohnort: Halle/Saale

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?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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.
:?: - Kannst du mal ein Beispiel geben?
Carsten1983
User
Beiträge: 20
Registriert: Montag 9. Juni 2008, 14:17
Wohnort: Halle/Saale

Klar :-)

Code: Alles auswählen

Startwert = 0, Endwert = 100, Anfangsabstand = 1, Endabstand = 10.

[0, 1, ..., 90, 100] 
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 :-)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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]
Benutzeravatar
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 ;-)

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)
Also da müßtest Du wohl noch ein wenig Hirnschmalz investieren ;-)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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