Felder < Mathe-Software < Mathe < Vorhilfe
|
Hi !
habe folgendes Problem :
Ich möchte eine Liste, die wie folgt aussieht : L := [1,2,2], zerlegen, und zwar so dass gleiche Elemente in einer neuen Liste vorkommen und nicht gleiche auch in einer neuen Liste auftreten. Es sieht dann wie folgt aus :
[1],
[2,2].
Für die Beantwortung bedanke ich mich schon jetzt.
MfG
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:41 Di 18.09.2007 | Autor: | Schlaffit |
Hi!
das Problem besteht in Maple.
Danke.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:10 Di 18.09.2007 | Autor: | Martin243 |
Hallo,
steht in deiner Maple-Version das ListTools-Package zur Verfügung?
Gruß
Martin
|
|
|
|
|
Hallo,
ich gehe jetzt einfach mal davon aus, dass das Package ListTools bei dir verfügbar ist. Dann kann man (mir ist nix besseres eingefallen) das Ganze so lösen:
with(ListTools);
list_of_lists = [seq([seq(i, j=1..Occurrences(i,L))] , i in MakeUnique(L))];
Du bekommst eine Liste von Listen. Die enthaltenen Listen haben dann die gewünschte Form, z.B. erhalten wir für
L := [1,2,2,4,4,2,2,3,4,2,2,3,4];
die Liste von Listen:
[[1], [2, 2, 2, 2, 2, 2], [4, 4, 4, 4], [3, 3]]
Gruß
Martin
|
|
|
|
|
Hi !
und Danke noch für die schnelle Antwort. Nur habe ich ein Problem festgestellt. Wenn ich with(ListTools); eingebe erscheint folgendes :
[BinaryPlace, BinarySearch, Categorize, DotProduct, FindRepetitions, Flatten, FlattenOnce, Group, Interleave, Join, JoinSequence, MakeUnique, Pad, PartialSums, Reverse, Rotate, Sorted, Split, Transpose]
d.h. das Occurrences fehlt bei mir. Kannst Du mir noch sagen wo man das herbekommt ? Ein Update oder ein Download ? Habe Maple 7.
Nochmals vielen Dank.
MfG
|
|
|
|
|
Hallo,
zuerst die schlechte Nachricht:
Nein, man kann das nicht einfach updaten (gratis), man bräuchte schon eine neuere Version von Maple.
Jetzt die gute Nachricht:
So etwas Ausgefallenes brauchen wir nicht. Ich habe da eine derart simple Lösung gefunden, dass ich mich immer noch wundere...
Sei also L deine Liste. Dann erhalten wir eine Sequenz (oder eine Liste, wenn wir sie mit eckigen Klammern einrahmen) von Listen gleicher Elemente:
seq_of_lists := Categorize('=', L);
oder
list_of_lists := [Categorize('=', L)];
Die Zeichen um das Gleichheitszeichen herum sind Backquotes oder Accents graves (SHIFT + Taste links von Backspace). Die werden hier irgendwie etwas anders dargestellt...
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 13:33 Do 20.09.2007 | Autor: | Schlaffit |
Hallo,
danke. Es funktioniert wunderbar.
MfG
|
|
|
|