Thread RDW #1 - Rätsel der Woche Nummer eins (112 answers)
Opened by Crian at 2004-07-08 21:52

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

View full thread RDW #1 - Rätsel der Woche Nummer eins