RDW #5 - Raetsel der Woche Nummer 5 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Regeln:  * Bitte nicht vor Ablauf der ersten 72 Stunden ( = drei Tage ) ~~~~~~~    nach Veroeffentlichung Hinweise (Spoiler) oder Loesungen ver-            oeffentlichen!          * Wenn diese Zeit abgelaufen ist, werde ich einen Thread mit            passendem Titel erstellen, in dem die Loesungen gepostet werden            und diskutiert werden koennen.          * Die Loesungen sollten nicht nur gepostet, sondern auch an mich            gemailt werden, damit ich sie testen, "bewerten"  und zu-            sammenfassen kann.            Die Adrese dafuer lautet:            crian <---AT---> perl <---MINUS---> community <---DOT---> de            Im Betreff sollte 'RDW' und die Nummer des Raetsels stehen.            Hilfreich waere neben dem Quellcode der Username im Forum            sowie Perl- und OS-Version, falls Du diese kennst.          * Verstaendnisfragen duerfen in diesem Thread gestellt werden, aber            Tipps und (Teil-) Loesungen sind hier unerwuenscht.          * Ich werde die eingeschickten Programme im Netz zur Verfuegung            stellen, so dass gerade lange Quellcodes nicht (komplett)            gepostet werden muessen.          * Zur Verwendung von Modulen: Ich moechte diese nicht generell            ausschliessen, aber wenn quasi die komplette Aufgabe durch            die Verwendung eines Moduls ersetzt werden kann, ist dies            vielleicht nicht der Sinn der Aufgabe gewesen. Aufgabe: Schreibe eine Funktion, die zu einem gegebenen Skalar die Menge ~~~~~~~~ aller Permutationen seiner Zeichen zurueckgibt.          (Golfvariante: Skalar von STDIN oder als Parameter, Permutationen          ausgeben.)          Dabei werden die Zeichen so behandelt, als waeren sie alle ver-          schieden (die Eingabe von 'aaa' fuehrt zur Ausgabe von 'aaa', 'aaa',          'aaa', 'aaa', 'aaa', 'aaa').          Beispiel: Eingabe '123'                    Ausgabe '123', '132', '213', '231', '312', '321'          Die Anzahl der ausgegebenen Skalare ist n! (n Fakultaet), wobei          n die Laenge des Eingabestrings ist. Jeder ausgegebene String hat          natuerlich die gleiche Laenge wie die Eingabe.          (Falls jemand nicht weiss, was n Fakultaet ist:                    0! := 1          n! := n * (n-1)!          n!  = 1 * 2 * 3 * ... * (n-1) * n          1!  = 1          2!  = 2          3!  = 6          4!  = 24          5!  = 120          6!  = 720          10! = 3628800          20! = 2.43290200817664e+018          99! = 9.33262154439441e+155          [ perl -e "$x=1;for(2..20){$x*=$_}print $x" ]          )