|
|
Mengen, Listen und Folgen
Eine endliche Menge von Zahlen:
> |
M:= {1, 5, 7, 7, 7, 3,
2, 12}; |

Die Elemente dieser Menge sind zwar in einer gewissen
Reihenfolge gespeichert und hier auch hingeschrieben;
dennoch sind die Elemente einer Menge nicht geordnet:
> |
M[6];
M[6]:= 9; # Es gibt kein 6.Element von M!
M; |
12
Error, cannot reassign
the entries in a set
{ 1, 2, 3, 5, 7, 12 }
Eine Liste von Zahlen:
> |
l:= [1, 5, 7, 7, 7, 3,
2, 12]; |
![l:= [1, 5, 7, 7, 7, 3, 2, 12]](images-mengen/mengen3.gif)
Die Elemente einer Liste sind geordnet und indiziert.
Durch diese Indizierung kann man auf jedes einzelne Listenelement zugreifen und auch ändern:
> |
l[6];
l[6]:= 9: # Das 6. Element von l wird geändert.
l; |

Eine Folge von Zahlen:
> |
f:= 1, 5, 7, 7, 7, 3,
2, 12;
f[6];
f[6]:= 9: # Unzulässiger Zugriff auf f.
f; |

Error, invalid assignment (1, 5, 7, 7, 7, 3, 2, 12)[6] := 9;
cannot assign to an expression sequence
1, 5, 7, 7, 7, 3, 2, 12
Elementare Mengenoperationen:
> |
M;
M:= M minus {7, 10, 11, 12};
M union {4, 5};
M intersect {2, 3, 4};
is (4 in M);
{} subset M;
nops (M); # Anzahl aller Elemente in M |

Verändern von Listen:
> |
l;
nops (l); # Anzahl aller Listenelemente
l:= subsop (3=NULL,4=NULL,l);
sort (l, `>`);
l:= [op(l), 13, 14, 14, 14, 5, 9]; |

Entfernen mehrfach vorkommender Listenelemente:
> |
with (ListTools):
MakeUnique (l); |
[1, 5, 7, 9, 2, 12, 13, 14]
Weitergehende Informationen über die Manipulation von Listen:
|
Die Befehle des ListTools Package: |
| BinaryPlace |
BinarySearch |
Categorize |
DotProduct |
Enumerate |
| FindRepetitions |
Flatten |
FlattenOnce |
Group |
Interleave |
| Join |
JoinSequence |
MakeUnique |
Occurrences |
Pad |
| PartialSums |
Reverse |
Rotate |
Search |
SearchAll |
| Sorted |
Split |
Transpose |
|
|
Operationen auf Folgen:
> |
f;
nops([f]); # Anzahl aller Folgenglieder
liste:= MakeUnique (sort ([f]));
folge:= op (liste);
3, 5, f[2..4], 7; |

Datentypen
|