Font
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6469[/thread]

RDW #5 - Rätsel der Woche 5

Tags: Similar Threads

Readers: 2


<< |< 1 2 3 4 ... 7 >| >> 64 entries, 7 pages
Crian
 2004-08-06 12:22
#85474 #85474
User since
2003-08-04
5826 articles
ModeratorIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 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" ]
         )  
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
kabel
 2004-08-06 16:06
#85475 #85475
User since
2003-08-04
704 articles
BenutzerIn
[default_avatar]
[s]obs hier auch wieder ne abzaehlloesung gibt? :-)
vielleicht nicht gerade im binaersystem.[/s] und das interface ist lame.

EDIT: wer dazu ne abzaehlloesung findet hat geschummelt ;p\n\n

<!--EDIT|kabel|1091794111-->
-- stefan
Crian
 2004-08-06 16:26
#85476 #85476
User since
2003-08-04
5826 articles
ModeratorIn
[Homepage]
user image
hmmm meine Golflösung enthält [s]198[/s]186 Zeichen, *grummel*?\n\n

<!--EDIT|Crian|1091796283-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
esskar
 2004-08-06 16:51
#85477 #85477
User since
2003-08-04
7321 articles
ModeratorIn

user image
[quote=kabel,06.08.2004, 14:06]EDIT: wer dazu ne abzaehlloesung findet hat geschummelt ;p[/quote]
ROFL
Ishka
 2004-08-06 17:20
#85478 #85478
User since
2003-08-04
771 articles
HausmeisterIn
[Homepage] [default_avatar]
[quote=Crian,06.08.2004, 10:22][...]
Dabei werden die Zeichen so behandelt, als waeren sie alle verschieden (die Eingabe von 'aaa' fuehrt zur Ausgabe von 'aaa', 'aaa', 'aaa', 'aaa', 'aaa', 'aaa').
[...][/quote]
ist ja langweilig.. :p\n\n

<!--EDIT|Ishka|1091798579-->
sub z{if(@_){1while$x[$k=rand 10];t($t=$x[$k]=1)}print map"$z[$x[$_]]$_".($_%3?
"":"\n"),1..9}sub t{$j=0;$x[$_+1]==$t&&($j+=2**$_)for 0..8;z,die"Gewinner $z[$t]
"if grep$_==($j&$_),7,56,73,84,146,273,292,448;z,die"Gleichstand\n"if@x>9&&!grep
!$_,@x}@x=4;@z=qw{. [ (};z$^T&1;while(<>){next if$_>9||$x[$_];t$t=$x[$_]=2;z 1}
DS
 2004-08-06 17:20
#85479 #85479
User since
2003-08-04
247 articles
BenutzerIn
[default_avatar]
Wie soll die Ausgabe ausschaun? Ich hab' 2 Lösungen, bei der einen werden sie Ausgabestring mit Newlines getrennt, bei der anderen nur mit einem Leerzeichen... Länge: 77 bzw. 75 Zeichen... :p
Crian
 2004-08-06 17:53
#85480 #85480
User since
2003-08-04
5826 articles
ModeratorIn
[Homepage]
user image
Mit Newlines getrennt.

Mein_Skript.pl 123|wc -l

sollte 6 ausgeben.

@Ishka: Wer da Nicht-Mengen reintut, muss mit Ergebnismüll leben können. Es steht Dir aber natürlich frei eine Variante zu schreiben, die das berücksichtigt. Müsste man am Ende ja nur Unique machen, und das fände ich öde.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
DS
 2004-08-06 18:24
#85481 #85481
User since
2003-08-04
247 articles
BenutzerIn
[default_avatar]
[quote=esskar,06.08.2004, 14:51][quote=kabel,06.08.2004, 14:06]EDIT: wer dazu ne abzaehlloesung findet hat geschummelt ;p[/quote]
ROFL[/quote]
Was genau ist mit Abzähllösung gemeint und warum ist das so lustig? ???
esskar
 2004-08-06 19:02
#85482 #85482
User since
2003-08-04
7321 articles
ModeratorIn

user image
das liegt an der fakultät im allgemeinen:

also; eine Menge mit 10 elementen hat 10! verschiedene permutationen (10! = 3628800; 100! = 9,3326215443944152681699238856267e+157) ... zähl das mal ab! :P
kabel
 2004-08-06 19:24
#85483 #85483
User since
2003-08-04
704 articles
BenutzerIn
[default_avatar]
@DS: bin auf die folg loesungen gespannt! ich hab /leicht/ ueber 100 zeichen.
mal sehen, was mann/frau da anders machen kann 8)
-- stefan
<< |< 1 2 3 4 ... 7 >| >> 64 entries, 7 pages



View all threads created 2004-08-06 12:22.