#!/usr/local/bin/perl -w use List::Util qw(shuffle); @next= ( [0], [2,4], [1,3,5], [2,6,0], [1,5,7], [2,4,6,8], [3,5,9], [4,8], [5,7,9], [6,8] ); @cc=(1,3,7,8,2,12,6,1,5,4); while(1){ @ruta=(); @c=@cc; $count=0; $ruta[0]=9; $c[9]--; while (1){ $count++; @cand=(); $ant=$ruta[$count-1]; for $j (0..3){ if (defined $next[$ant][$j]){ push @cand, $next[$ant][$j]; }else{last; } } $ok=0; for $i (shuffle @cand){ if ($c[$i]>0){ $ok=1; $ruta[$count]=$i; $c[$i]--; last; } } last if ($ok==0); } $exito=0; for $j (0..$#c){ if ($c[$j]==0 || $j == 5){ $exito++; }else{ last; } } last if $exito==10; } print @ruta,"\n"; for $i (@ruta){ if ($i==5) { $k++; } } print "El núm. de celda central (5) es $k\n"; __END__ Cuarto central From: Sonia Reply to: Sonia Date: Wed, 14 Apr 2010 08:44:41 -0700 (PDT) Organization: http://groups.google.com Newsgroups: es.ciencia.matematicas Followup to: newsgroup Una exposici=F3n se exhibe en 9 salas. Cada cuarto est=E1 comunicado en cus vecinos y el n=FAmero indica cuantas veces paso Luis por cada uno de ellos. =BFcuantas veces pas=F3 Luis por el cuarto Central 3 7 8 -> Salida 2 ? 6 1 5 4 <- Entrada