RDW #2 - Rätsel der Woche Nummer 2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Regeln: * Bitte nicht vor Ablauf der ersten 72 Stunden ( = drei Tage )
~~~~~~~ nach Veröffentlichung Hinweise (Spoiler) oder Lösungen ver-
öffentlichen!
* Wenn diese Zeit abgelaufen ist, werde ich einen Thread mit
passendem Titel erstellen, in dem die Lösungen gepostet werden
und diskutiert werden können.
* Die Lösungen sollten nicht nur gepostet, sondern auch an mich
gemailt werden, damit ich sie testen, "bewerten" und zu-
sammenfassen kann.
Die Adrese dafür lautet:
crian <---AT---> perl <---MINUS---> community <---DOT---> de
Im Betreff sollte 'RDW' und die Nummer des Rätsels stehen.
Hilfreich wäre neben dem Quellcode der Username im Forum
sowie Perl- und OS-Version, falls Du diese kennst.
* Verständnisfragen dürfen in diesem Thread gestellt werden, aber
Tipps und (Teil-) Lösungen sind hier unerwünscht.
* Ich werde die eingeschickten Programme im Netz zur Verfügung
stellen, so dass gerade lange Quellcodes nicht (komplett)
gepostet werden müssen.
* Zur Verwendung von Modulen: Ich möchte diese nicht generell
ausschließen, aber wenn quasi die komplette Aufgabe durch
die Verwendung eines Moduls ersetzt werden kann, ist dies
vielleicht nicht der Sinn der Aufgabe gewesen.
Aufgabe: Berechnung der Potenzmenge:
~~~~~~~~
Sei A eine Menge. Die Menge aller Teilmengen von A heisst
Potenzmenge von A.
Beispiel: A={1, 2, 3}
=> P(A)={{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}}
Eine Menge wird in Perl durch eine Arrayreferenz repräsentiert.
Die Menge A enthält natürlich jedes Element maximal einmal.
Diese Eigenschaft überträgt sich natürlich auf die Teilmengen.
Schreibe die Funktion P!
(Diese Aufgabe stammt von kabel. Die Verwendung von Modulen
ist dieses Mal generell untersagt.)