Schrift
[thread]6520[/thread]

RDW #7 - Rätsel der Woche 7 (Seite 7)

Tags: Ähnliche Threads

Leser: 1


<< |< 1 ... 4 5 6 7 8 >| >> 80 Einträge, 8 Seiten
steve
 2004-08-23 19:05
#49526 #49526
User since
2004-03-04
52 Artikel
BenutzerIn
[default_avatar]
Das funktinoniert auch ...

steve
Crian
 2004-08-23 19:10
#49527 #49527
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Hmmm anscheinend zumindestens nicht unter Windows, ich werds nachher zu Hause aber nochmal unter Linux testen. Aber keine Angst, wenn ich nicht genau sage, wie die Eingabe erfolgen soll, kann man es sich aussuchen =)
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
[E|B]
 2004-08-23 19:27
#49528 #49528
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@Crian

Wenn du willst, schreibe ich für das nächste RDW mal ein paar geeignete Golflösungen. :)
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]
pq
 2004-08-23 19:37
#49529 #49529
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=steve,23.08.2004, 16:38]echo | perl script.pl  :)

es wird über stdin gelesen. :P[/quote]
du liest nicht über STDIN, sondern <>, was bei einem aufruf per parameter
versucht, diesen parameter als datei zu öffnen.
deswegen sollte man sich beim nächsten mal einig werden, in welcher form
der input vorliegt und wie der output aussieht.
z.b. $output =~ m/^\d+[ +]\d+\n\Z|^\Z/ ist ziemlich eindeutig (also
zwei zahlen plus newline oder gar nichts), da fehlt
dann nur noch die verifizierung der zahlen.
es gibt auch irgendwo so ein generisches golf-test-skript, womit man seine lösung
testen kann und auch gleich die anzahl der zeichen feststellt. ich such mal...

edit: da isses ja: http://www.xs4all.nl/~thospel/golf/gentest.pl
ich kann gern versuchen, fürs nächste rätsel das gentest.pl anzupassen.
edit2: kann ich wahrscheinlich doch nicht, da ich eine woche bei meinen eltern
bin und dort kein perl haben werde :-/\n\n

<!--EDIT|pq|1093276685-->
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
DS
 2004-08-23 19:41
#49530 #49530
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
Hm, meine eMails sind dann wohl auch verschollen... also poste ich meine Lösungen gleich hier:

Code (perl): (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
#!perl
 
# ARGV + Ausgabe komplett + exit print: 74 Zeichen
$b=pop;{(grep/^1$|^(11+)\1+$/,1x++$a,1x--$b)&&redo}print$a+$b," = $a + $b"
 
# ARGV + Ausgabe komplett + die: 70/71 Zeichen
(grep/^(11+)\1+$/,1x$_,1x($b=$z-$_))||die"$z = $_ + $b"for 2..($z=pop)
 
# ARGV + Ausgabe kurz + exit print: 63 Zeichen
$b=pop;{(grep/^1$|^(11+)\1+$/,1x++$a,1x--$b)&&redo}print"$a+$b"
 
# ARGV + Ausgabe kurz + die: 60/61 Zeichen
$b=pop;(grep/^(11+)\1+$/,1x$_,1x--$b)||die"$_+$b"for 2..--$b
 
#!perl -n
# - oder -
#!perl -p     # bei falscher Eingabe "Fehlermeldung" "0" ;)
 
# STDIN + Ausgabe komplett + exit print: 75 Zeichen
(grep/^1$|^(11+)\1+$/,1x++$a,1x$_)||exit print$a+$_," = $a + $_"while--$_
 
# STDIN + Ausgabe komplett + die: 68/69 Zeichen
(grep/^1$|^(11+)\1+$/,1x++$a,1x$_)||die$a+$_," = $a + $_"while--$_
 
# STDIN + Ausgabe kurz + exit print: 64 Zeichen
(grep/^1$|^(11+)\1+$/,1x++$a,1x$_)||exit print"$a+$_"while--$_
 
# STDIN + Ausgabe kurz + die: 57/58 Zeichen
(grep/^1$|^(11+)\1+$/,1x++$a,1x$_)||die"$a+$_"while--$_
 
#!perl -p
 
# STDIN + Ausgabe komplett + print: 66 Zeichen
(grep/^1$|^(11+)\1+$/,1x++$a,1x--$_)&&redo;print$a+$_," = $a + "
 
# STDIN + Ausgabe kurz + print: 55 Zeichen
(grep/^1$|^(11+)\1+$/,1x++$a,1x--$_)&&redo;print"$a+"


Die Versionen mit die haben je 2 Längenangaben: die erste entspricht der Länge der Lösung, so wie sie hier geschrieben ist, die zweite ist die Länge der Lösung, wenn man nach "a+b" noch ein "\n" ausgeben möchte, damit die nicht automatisch " at rdw07_blablabla.pl line 123" anhängt.

Sind ein wenig viel Lösungen, ich weiß, aber je nachdem welche Regeln man anwenden will...

So, ich muss schon wieder weg... wir renovieren die nächsten Tage unser Wohnzimmer... neuer Parkettboden rein... ärgerlich... aber was soll's... :cool:
Ishka
 2004-08-23 22:47
#49531 #49531
User since
2003-08-04
771 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Meine Mail kam wohl auch nicht an..

Meine Golflösung ist
Code: (dl )
(1x++$_.$/.1x--$x)=~/^((11+)\2+|1)$/m||die"$x+$_\n"while$x|=pop

meine nicht-Golflösung hab ich mal hier hochgeladen\n\n

<!--EDIT|Ishka|1093286860-->
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}
[E|B]
 2004-08-23 23:04
#49532 #49532
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Wir scheinen alle drei den selben Lösungsansatz verfolgt zu haben. ;)
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]
DS
 2004-08-23 23:28
#49533 #49533
User since
2003-08-04
247 Artikel
BenutzerIn
[default_avatar]
[E|B
,23.08.2004, 21:04]Wir scheinen alle drei den selben Lösungsansatz verfolgt zu haben. ;)

Bei der Primzahlsuche mehr oder weniger schon, bis auf Crian... ;) aber die Ansätze für die Schleifen sind schon recht unterschiedlich. Ishka's Idee mit dem Multiline-Regexp find' ich ziemlich rafiniert, genauso wie das $x|=pop...

Ich bin schon auf deine Lösung gespannt...

(Wen meinst überhaupt mit "alle drei"?)
[E|B]
 2004-08-23 23:38
#49534 #49534
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Ich habe drei Lösungen abgegeben. Eine so ähnlich wie eure und eine so ähnlich wie Crians.
Werden wir ja sehn, wenn er sie online stellt.
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-24 11:15
#49535 #49535
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Ich kann leider die WikiSeite
http://wiki.perl-community.de/bin/view/Wissensbasis/RaetseL20040820 im Moment nicht bearbeiten, auf genau dieser Seite fehlt oben rechts der übliche Kram der da sonst inst, und wo man "editieren" auswählen kann... bedeutet das, dass jemand anderes die Seite gerade bearbeitet, oder ist die irgendwie schreibgeschützt worden?
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
<< |< 1 ... 4 5 6 7 8 >| >> 80 Einträge, 8 Seiten



View all threads created 2004-08-20 15:46.