Schrift
[thread]6386[/thread]

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

Tags: Ähnliche Threads

Leser: 2


<< |< 1 ... 4 5 6 7 8 9 10 ... 12 >| >> 113 Einträge, 12 Seiten
Gast Gast
 2004-07-12 18:38
#84014 #84014
[quote=Ronnie,11.07.2004, 23:41]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

print Dumper walk('./rdw01_testsuit');
exit;

sub walk {
 my $here = {};
 chdir shift;  
 $here->{$_} = (-d $_) ? walk($_) : '' for (<*>);
 chdir '..';
 return $here;
}

[/quote]
Diese Lösung gefällt mir am Besten ...
kurz und trocken :)

Hab' da noch etwas dran rumgebastelt.
Wenn man das so schreibt:
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
#!/usr/bin/perl
#-#############################################
   
   use strict;
   use warnings;
   use Data::Dumper;

   my $root_dir = 'AbsoluterPfadZumVerzeichnis';
   
   print "Content-type: text/plain\n\n";
   print Dumper get_tree(\$root_dir);  
   
   print "\n\nRuntime: ", ((times())[0] + (times())[1]), " Sec.";

#-#############################################
# Sub: Create a Tree of Directories and Files
#-#############################################
sub get_tree {
   my ($root, $dir) = @_;
   my ($path, $tree);
   local $_;
   
   $$root =~ s/\\/\//g;
   
   $dir ? ($path = "$$dir/$$root") : ($path = $$root);
   
   chdir $$root;
   $tree->{$_} = -d($_) ? get_tree(\$_, \$path) : $path foreach <*>;
   chdir '..';
   
   return $tree;
}

#-#############################################


dann wird das Teil auch ein wenig schneller und zu jeder Datei findet sich der entsprechende Pfad im Value des Keys.
Dachte das könnte vielleicht für die eine oder die andere Anwendung irgendwie nützlich sein.
Antworten mit Zitat
Crian
 2004-07-12 20:51
#84015 #84015
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Crian,12.07.2004, 14:14]Ich kann erst heute Abend die Dateien hochladen, ich sag dann nochmal Bescheid, danke.[/quote]
Aber jetzt:

>>> Lösung von pq <<<

>>> Lösung von sri <<<

>>> Sample-Lösung von Crian <<<

>>> Lösung von kabel <<<

>>> Lösung von ronnie <<<

>>> Zweite Lösung von ronnie <<<

>>> Zweite Lösung von sri <<<

>>> Lösung von steve <<<

@renee: Kannst Du diese Lösungen da im Wiki mit verlinken? Trotz Rücksetzen des Wiki-Passwortes kann ich nicht drauf zugreifen. Dabei würd ich da gern noch das ein oder andere ändern / ergänzen... naja, kommt Zeit kommt Rat.

Edit: und

( >>> Erweiterung von von Dieter <<< )\n\n

<!--EDIT|Crian|1089668204-->
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
Antworten mit Zitat
Crian
 2004-07-12 20:55
#84016 #84016
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
[quote=Dieter,12.07.2004, 16:38]zu jeder Datei findet sich der entsprechende Pfad im Value des Keys.
Dachte das könnte vielleicht für die eine oder die andere Anwendung irgendwie nützlich sein.[/quote]
Ich hab mir bei der Aufgabenstellung schon was gedacht... ich hab mir Deine Lösung noch nicht angeschaut (das kommt später), aber in der von mir verlangten Form macht das schon Sinn :)
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
Antworten mit Zitat
Gast Gast
 2004-07-12 22:03
#84017 #84017
@Crian
Neee - was ich da gemacht habe das war doch keine 'Lösung' im Sinne der Aufgabenstellung, sondern allenfalls eine Ergänzung zur Lösung die Ronnie präsentiert hat.
Antworten mit Zitat
Crian
 2004-07-13 01:35
#84018 #84018
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Nagut, dann klammer ich das mal ein ...
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
Antworten mit Zitat
renee
 2004-07-13 01:44
#84019 #84019
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
@Crian: Ich werde das gleich machen... Und werde Deine Lösung einfach mal als Beispielhaft daruntersetzen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Antworten mit Zitat
esskar
 2004-07-13 02:18
#84020 #84020
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=Crian,11.07.2004, 20:58][quote=pq,10.07.2004, 15:27][quote=esskar,10.07.2004, 01:44]
Viele rekursive Lösungen lassen sich in iterative Lösungen umschreiben.[/quote]
AFAIK kann man jede rekursion iterativ umschreiben.[/quote]
Das kann theoretisch sein (weiß ich jetzt gerade nicht, obwohl ich es wissen müsste, war aber ein anstrengender Tag...*rausred*). Aber Du kannst es ja mal mit der Ackermannfunktion versuchen :-D[/quote]
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
#!/usr/bin/perl

use strict;

print "ackermann($ARGV[0], $ARGV[1])\n";

print ackermann($ARGV[0], $ARGV[1]);

sub ackermann
{
my ($x, $y) = @_;

my @stack = ();
while((defined $x and $x > 0) ||
((scalar @stack) != 0))
{
if($x == 0) { $x = pop @stack, $y++; }
elsif($y == 0) { $y = 1, $x--; }
else { $y--, push @stack, ($x-1); }
}

return ($y + 1);
}


[edit]defined $x eingefügt[/edit]
[edit]code "optimiert"[/edit]\n\n

<!--EDIT|esskar|1089678744-->
Antworten mit Zitat
esskar
 2004-07-13 04:34
#84021 #84021
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ackermann(4, 2) ist übrigens:

>>> Click <<<

also lieber user, nur die Parameter >= 0 und <= 3 testen :)\n\n

<!--EDIT|esskar|1089679066-->
Antworten mit Zitat
kabel
 2004-07-13 10:16
#84022 #84022
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
danke@esskar.de

OT, aber da der begriff eh schon gefallen ist:

das stammt aus dem gebiet der /berechenbarkeit/. es geht um die frage, welche funktionen überhaupt effektiv berechenbar sind. (effektiv heisst hier, dass es überhaupt eine funktion gibt)

man glaubte zuerst, es sei die klasse der sog. /primitiv rekursiven/ funktionen. doch die ackermannfunktion ist ganz offensichtlich berechenbar, sie ist aber NICHT primitiv-, sondern sog. /µ-rekursiv/.

das klingt nur so weils fachjargon ist. die definition dieser funktionsklassen ist einfach, aber man kann damit zeugs machen ...

:lach: oder :heul:? kann mich net entscheiden ;)
-- stefan
Antworten mit Zitat
kabel
 2004-07-13 10:58
#84023 #84023
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
hier noch ne "diskussion" (momentan 3 nodes) über file::find und geschwindigkeit:
http://www.perlmonks.org/index.pl?node_id=373816
-- stefan
Antworten mit Zitat
<< |< 1 ... 4 5 6 7 8 9 10 ... 12 >| >> 113 Einträge, 12 Seiten



View all threads created 2004-07-08 21:52.