[Python-de] Intervalle (War: Wie schreibe ich inf als Literal?)

M.-A. Lemburg mal at lemburg.com
Thu Mar 13 14:47:38 EST 2003


Dinu Gherman wrote:
> M.-A. Lemburg:
> 
>> slice() dient nur dazu das Konzept "Interval" abzubilden. Die
>> Funktionalität kommt erst duch die Anwendung auf eine
>> entsprechende Sequenz zustande. Das kann vieles sein: eine
>> Liste, die Menge der reellen Zahlen, ein Bildschirmbereich,
>> etc.
> 
> 
> Das sehe ich anders. Zum "Konzept" von Intervallen (mit numerischen
> Bereichsgrenzen) gehoert gerade, dass man sie mindestens zusammen-
> legen und aufteilen kann (Vereinigungs-, Schnittmenge, etc.).

Das ist richtig im Zusammenhang mit numerischen Intervallen.
Dann nennt man das ganze aber Intervallarithmetik. slice()
in Python ist lediglich dazu da, das Konzept der Benennung
der Teilmenge zu tragen.

> Erst beim Zugriff auf Elemente und beim Test auf Enthaltensein von
> solchen in einem Intervall entsteht eine Bindung zu einem "Domain",
> z.B. bei Bildschirmpixeln oder Nilkoenigen. Davor hat ein Intervall
> abstrakt zu sein, so wie eine natuerliche Zahl erst einmal keine
> "Einheit" hat.

Dafür sind slice()s zu allgemein. Es ist ohne Probleme
möglich slices über nicht-numerische Bereiche zu definieren:

 >>> slice('rot', 'orange', 'gruen')
slice('rot', 'orange', 'gruen')

Was damit nun gemeint ist, hängt ganz davon ab worauf man
dieses abstrakte Interval anwendet. Das gleiche gilt für
Operationen auf diesen abstrakten Intervallen.

> Das Python einen zwingt, selbst die "natuerlichen" Operationen auf
> solchen abstrakten Intervallen in der Domain selbst zu implementier-
> en ist meines Erachtens mindestens ungluecklich. Den Umstand hat es
> aber wahrscheinlich mit den meisten anderen Sprachen gemein.
> 
> Es ist erstaunlich, was man alles mit Intervallen herumrechnen kann,
> bis hin zu unscharfen (fuzzy) Bereichsgrenzen. Ja, zu dem Thema gibt
> es sogar Buecher, Konferenzen und was nicht alles :-)
> 
>   http://www.lsi.upc.es/~robert/mirror/interval-comp/main.html

Ich hatte mal vor, Intervallarithmetik in Python über mxNumber
verfügbar zu machen. Es gibt da einen nette Extension für GMP,
die das implementiert.

Dieser Bereich ist übrigens riesig: in der Mathematik wird
Intervallarithmetik in vielfacher Weise zur Optimierung
eingesetzt. Das schöne daran ist, daß man selbst unstetige
Funktionen auf sehr einfache Weise damit behandeln kann,
aber das ist nun wirklich OT :-)

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Software directly from the Source  (#1, Mar 13 2003)
 >>> Python/Zope Products & Consulting ...         http://www.egenix.com/
 >>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________
Python UK 2003, Oxford:                                     19 days left
EuroPython 2003, Charleroi, Belgium:                       103 days left





More information about the Python-de mailing list