Schrift
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 (Seite 3)

Tags: Ähnliche Threads

Leser: 2


<< |< 1 2 3 4 5 6 7 >| >> 64 Einträge, 7 Seiten
Crian
 2004-08-07 13:26
#85494 #85494
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Nur um es nochmal klarzustellen, das Golfprogramm soll sich folgender Maßen verhalten, um Vergleichbarkeit zu gewährleisten:

Code: (dl )
1
2
3
4
5
6
7
8
9
crian@blitz:~/perl/rdw/rdw05> rdw05_crian_golf.pl 123
123
132
213
231
312
321
crian@blitz:~/perl/rdw/rdw05> rdw05_crian_golf.pl 123|wc -l
6
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-07 14:06
#85495 #85495
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
Oder über STDIN: :)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
>echo abc|perl rdw05_ds_golf.pl
abc
acb
bac
bca
cab
cba

>echo abc|perl rdw05_ds_golf.pl|wc -l
6

Edit: Beispiel ausgebaut...\n\n

<!--EDIT|DS|1091873890-->
[E|B]
 2004-08-07 14:35
#85496 #85496
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=DS,06.08.2004, 20:11]
[E|B
,06.08.2004, 19:56]@DS

Hast du denn jetzt 50 Zeichen? Da ist so viel durchgestrichen. :D

Jep, hab' ich... ich bin am überlegen ob ich's jetzt abschicken soll, weil mir keine Optimierungen mehr einfallen, aber das hab ich bei den 77 auch gedacht... ;)[/quote]
Frechheit, so leicht gebe ich mich nicht geschlagen. Mal schaun, ob ich noch was kürzeres finde. :)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
Crian
 2004-08-07 14:45
#85497 #85497
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=DS,07.08.2004, 12:06]Oder über STDIN: :)

Code: (dl )
1
2
3
4
5
6
7
8
9
10
>echo abc|perl rdw05_ds_golf.pl
abc
acb
bac
bca
cab
cba

>echo abc|perl rdw05_ds_golf.pl|wc -l
6
[/quote]
Nö, das muss es nicht können.

Und für die Vergleichbarkeit wärs schon besser, wenn die Programme das selbe leisten, sonst vergleicht man Äpfel mit Birnen.\n\n

<!--EDIT|Crian|1091875621-->
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
steve
 2004-08-07 14:55
#85498 #85498
User since
2004-03-04
52 Artikel
BenutzerIn
[default_avatar]
ich komm einfach nich auf nen grünen Zweig! Es ist einfach zu warm hier ..

steve
DS
 2004-08-07 15:04
#85499 #85499
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
Quote
(Golfvariante: Skalar von STDIN oder als Parameter, Permutationen ausgeben.)

Erlaubt ist demnach beides, ich kann aber schon was einbaun, daß das Programm auch eine Eingabe via Parameter erkennt. Aber die Zeichen sollten dann nach der ursprünglichen Lösung berechnet werden, denn die Lösung ist ja an sich nicht falsch.

Das nächste Mal einfach nur eine Eingabeform erlauben, dann ist es eindeutig...

Oder ich hab noch eine Idee... man könnte ein Programm schreiben, das das eigentliche Programm einliest, und versucht herauszufinden, von wo die Eingabe erwartet wird, und dann dieses entsprechend ausführt... mal probieren... :cool:
Ishka
 2004-08-07 17:21
#85500 #85500
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=Crian,06.08.2004, 15:53][...]
@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.[/quote]
eine Variante um permutationen zu machen hab ich schon, notfalls geb ich die ab. Aber ich versuch das mit gleichen Zeichen zu berücksichtigen, ohne unique danach zu machen.
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-07 17:52
#85501 #85501
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
Ups... mein 50 Zeichen Lösung hat einen kleinen... "Schönheitsfehler"... :angry:

Möglicherweise hat [E|B] den auch, denn bei 60 Zeichen muss er fast mit dem selben "Algorithmus" arbeiten...
[E|B]
 2004-08-07 18:04
#85502 #85502
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@DS

Wieviele Zeichen sind es dann? Was ist das für ein Schönheitsfehler?
Ich habe nochmal geguckt, aber noch mehr wegoptimieren kann ich nicht. Vielleicht finden wir später noch eine gemeinsame Lösung.
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
[E|B]
 2004-08-07 18:14
#85503 #85503
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Durch ein wenig schummeln hab ich meinen Code auf 52 Zeichen bekommen. :D
Ob man das allerdings darf, weiß ich nicht. Die Anleitung oben verbietet es zumindest nicht. ;)
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
<< |< 1 2 3 4 5 6 7 >| >> 64 Einträge, 7 Seiten



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