Anleitungen:Listen von beliebigen Elementen sortieren: Unterschied zwischen den Versionen

Aus GeoGebra Manual
Wechseln zu: Navigation, Suche
Zeile 20: Zeile 20:
 
}}
 
}}
  
The trick to solve this problem in GeoGebra is to use the existing command to sort a list of points. Instead of thinking of points geometrically we think of those just as pairs of numbers. GeoGebra allows us to sort those points by their x-coordinates, so we create a list of points <math>\tilde c = (\tilde c_1, \ldots, \tilde c_n)</math> with <math>\tilde c_k := (f(a_k), k)</math> and sort this list. Let's call the sorted list <math>c = (c_1, \ldots, c_n)</math>. This sorted list now allows us to construct <math>\sigma</math>, because <math>y(c_{\sigma(k)}) = k</math>. Using <math>\sigma</math> we can then construct the sorted version of our original list.
+
Der Trick, dieses Problem in GeoGebra zu lösen, besteht darin, unter Verwendung von bereits bestehenden Befehlen eine Liste von Punkten zu sortieren. Dabei müssen Sie sich die Punkte nicht geometrisch, sondern als Zahlenpaar vorstellen. GeoGebra sortiert Punkte nach der ''x''-Koordinate, weshalb wir eine Liste von Punkten <math>\tilde c = (\tilde c_1, \ldots, \tilde c_n)</math> mit <math>\tilde c_k := (f(a_k), k)</math> erzeugen und diese sortieren.  
 +
Sei <math>c = (c_1, \ldots, c_n)</math> nun die sortierte Liste. Diese ermöglicht <math>\sigma</math> zu konstruieren, da <math>y(c_{\sigma(k)}) = k</math>. Unter Verwendung dieses <math>\sigma</math> lässt sich dann die sortierte Version der ursprünglichen Liste erzeugen.

Version vom 11. Juli 2012, 09:27 Uhr

Es ist leicht möglich, dass der Befehl Sortiere eine Liste von Objekten in GeoGebra nicht in der Art und Weise sortiert, wie Sie es gerne hätten. (Wenn Sie die Sortierung umkehren wollen, verwenden Sie den Befehl Sortiere in Kombination mit dem Befehl Umkehren.)

Für den Fall, dass der Befehl Sortiere die Elemente der Liste nicht ordnen kann oder Sie ein anderes Ordnungskriterium benötigen, kann Ihnen diese Anleitung helfen. Zum besseren Verständnis des Algorithmus finden Sie im Anschluss daran Erklärungen und Beispiele.

Algorithmus

  1. Sei Liste jene Liste, die Sie sortieren wollen.
  2. Liste_h = Sortiere[Folge[(*Zahl/Befehl bezüglich Element[Liste, i]*, i), i, 1, Länge[Liste]]]
    Diese Hilfsliste wird in der anschließenden Erklärung mit c bezeichnet, der fett markierte Teil mit f.
  3. Liste_s = Folge[Element[Liste, y(Element[Liste_h, i])], i, 1, Länge[Liste]]
    Dies erstellt die gewünschte, sortierte Liste.

Erklärung

Um diesen Algorithmus etwas verständlicher zu machen, versuchen wir eine mathematische Formulierung:

Gegeben seien die Liste (a_1, a_2, \ldots, a_n) \subset X und die Abbildung f: X \to \mathbb R. Gesucht ist jene Permutation \sigma \in S_n, für die gilt: f(a_{\sigma(k)}) \leq f(a_{\sigma(l)}) \; \forall (k,l) \in \mathbb N^2: 1 \leq k \leq l \leq nDiese Permutation können Sie sich als Umnummerierung vorstellen, sodass (a_{\sigma(1)}, a_{\sigma(2)}, \ldots, a_{\sigma(n)}) die gewünschte, sortierte Liste ist.

Zu Beginn muss also die passende Abbildung f gefunden werden, beispielsweise:

Beispiel: Wenn Sie eine Liste von Punkten nach aufsteigendem Abstand vom Koordinatenursprung sortieren wollen, so ist X := \mathbb R^2 und f((x,y)) := \sqrt{x^2 + y^2}. In GeoGebra entspricht f für einen Punkt A dem Befehl Länge[A], also lautet der fett markierte Teil im Algorithmus: Länge[Element[Liste,i]].
Beispiel: Wenn Sie eine Liste von Kreisen nach aufsteigendem Radius sortieren wollen, so lautet der fett markierte Teil im Algorithmus: Radius[Element[Liste,i]].
Beispiel: Eine vollständige Ausführung, wie eine Liste komplexer Zahlen nach ihren Argumenten sortiert werden kann, finden Sie auf GeoGebra: http://www.geogebra.org/material/show/id/7518

Der Trick, dieses Problem in GeoGebra zu lösen, besteht darin, unter Verwendung von bereits bestehenden Befehlen eine Liste von Punkten zu sortieren. Dabei müssen Sie sich die Punkte nicht geometrisch, sondern als Zahlenpaar vorstellen. GeoGebra sortiert Punkte nach der x-Koordinate, weshalb wir eine Liste von Punkten \tilde c = (\tilde c_1, \ldots, \tilde c_n) mit \tilde c_k := (f(a_k), k) erzeugen und diese sortieren. Sei c = (c_1, \ldots, c_n) nun die sortierte Liste. Diese ermöglicht \sigma zu konstruieren, da y(c_{\sigma(k)}) = k. Unter Verwendung dieses \sigma lässt sich dann die sortierte Version der ursprünglichen Liste erzeugen.

© 2024 International GeoGebra Institute