Seitenende | Anfang | Inhalt | Email [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | Vollbild | Schließen | Hauptframe | Lesezeichen | pgm, DEINE Startseite
Profichat [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | Vollbildchat | Fensterchat | Chat für deine Homepage | Deutsche Version Palace Chat Client Software [Link entfernt, weil Linkziel leider nicht mehr verfügbar]
10.000 Besucher | 1.000.000 Besucher
Zurück

pgm amoris Logo 48 pt 475 x 74 px
Foren

Foren:

Palace
Allgemein
Iptscrae
C-Client
InstantPalace
pgmClient

Andere Palace
Romance And Romantik

Sprachen
Haskell
Iptscrae

Hardware
Amiga

Speise
Kochen
Backen

Flora & Fauna
Pflanzen
Tierschutz

Kommuni-kations-systeme
ICQ

Zwischen-menschliches
Beziehung Probleme Sex
Sprüche & Witze

Hobby
Satelliten Empfänger
Pokémon

Forensystem
plaudern.de-Allgemein
Administratoren

 Haskell :: Sprache
  Suche:
 Blatt 5 25.11.2002 (02:20 Uhr) amo
Ok Leute... :-)

Hier nun eine Routine zu den Permutationen in Aufgabe 6. Leider brauchte ich aber 4 Funktionsdefinitionen, um das unter zu bringen. Die Funktion entstand nach einem Vorschlag, einer Idee von Rolf, die er mir gestern in der Bibliothek sagte. Danke dafür!

Hat wer ne Idee, wie man das gut machen kann, wenn man die Permutationen nicht rekursiv aufbaut, sondern [1..n] nimmt und dann systematisch permutiert und die Ergebnisse in eine Liste speichert?

Das hab ich leider nicht hinbekommen *schäm*.


------ Code Anfang

permutations :: Integer -> [[Integer]]
permutations x | x <= 0 = [[]]
permutations 1 = [[1]]
permutations n = addPerm n (permutations (n-1))

addPerm :: a -> [[a]] -> [[a]]
addPerm _ [] = []
addPerm n (x:xs) = addPermElem2Perm n x ++ addPerm n xs

addPermElem2Perm :: a -> [a] -> [[a]]
addPermElem2Perm n xs = addPermElemAfter (length xs) n xs where
   addPermElemAfter 0 n xs = [n:xs]
   addPermElemAfter i n xs = (take i xs ++ [n] ++ drop i xs) : addPermElemAfter (i-1) n xs

------ Code Ende


Viel Spaß beim Ausprobieren.

Das Gute dabei ist, finde ich, daß addPerm auf jedem beliebigen Listentyp arbeiten kann.
permutations ist aber deklariert, wie es in der Aufgabe gefordert war.
Wenn man das nicht so einschränkt, kann man addPerm verwenden, um beliebige Stringpermutationen zu erzeugen. Mit der Reihenfolge der Permutationen bin ich noch nicht zufrieden. Ich fände es schöner, direkt eine Ausgabe zu erzeugen, wie sie von mergesort (permutations n) mit n :: Integer geliefert wird.
Zuletzt geändert von amo am 26.11.2002 um 02:19 Uhr.
 Aufgabe 1 27.11.2002 (22:54 Uhr) amo
0 User im Forum. Kostenloses Forumhosting von plaudern.de. Dieses Forum im eigenen Design entführen. Impressum


pgm amoris Inhalt

Seitenanfang | Anfang | © amo | Haftungsausschluss | Email [Link entfernt, weil Linkziel leider nicht mehr verfügbar]

ws.pgm.amoris.org | pgm.amoris.org | derpalace.net [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | 4sat.de | DeutscheChats.de [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | Palace-Chats.de [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | amoris.org | iptscrae.net [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | avatarchat.net [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | webMail@amoris.org | pgmclient.net [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | pgmclient.de [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | thepalace.com | www.palacetools.com | amiculi.de [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | pgm-amoris.de [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | palacemail.net [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | avatarchats.net [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | avatarchat.tk [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | avatarchats.tk [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | pfennig.tk | derpalace.tk [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | wirbt.net [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | avatarchats.com [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | avatarchats.org [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | derpalace.com [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | derpalace.org [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | derpalace.de [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | avatarchats.de [Link entfernt, weil Linkziel leider nicht mehr verfügbar] | mail