No such thing as a small change PerlMonks

### Re: (Golf) Minimizing the Bacon Number

by bjelli (Pilgrim)
 on May 15, 2001 at 02:35 UTC ( #80383=note: print w/replies, xml ) Need Help??

in reply to (Golf) Minimizing the Bacon Number

My first try at golf:

```sub b {
\$M = scalar keys %t;
\$m = \$M *= \$M;
foreach  ( keys %t ) {
\$r = c( \$_ );
(\$m,\$n) = (\$r, \$_) if (\$r < \$m );
}
\$n;
}

sub c {
@s=@_;
%b  = ( \$s[0] => \$b=\$sum=0 );
while ( @s > 0 ) {
\$b ++;
@s = grep {  ! exists( \$b{\$_}  ) }
map { @{\$t{\$_}} } @s;
@b{ @s } = (\$b) x scalar(@s);
\$sum += \$b * scalar(@s);
return \$M if \$sum >  \$m
}
\$sum;
}

works for graphs too, I think.

Update: I can write that down in 196:

```sub b{\$M=\$m=@_*@_;for(keys %t){\$r=c(\$_);(\$m,\$n)=(\$r,\$_)if(\$r<\$m)}\$n}su
+b c{%b=(\$_[0]=>\$b=\$sum=1);while(@_){\$b++;@_=grep{!\$b{\$_}}map{@{\$t{\$_}
+}}@_;@b{@_}=(\$b)x@_;\$sum+=\$b*@_;return\$M if\$sum>\$m}\$sum}

slower but shorter: down to 177:

```sub b{\$M=\$m=@_*@_;for(keys %t){\$r=c(\$_);(\$m,\$n)=(\$r,\$_)if(\$r<\$m)}\$n}su
+b c{%b=(\$_[0]=>\$b=\$sum=1);while(@_){\$b++;@_=grep{!\$b{\$_}}map{@{\$t{\$_}
+}}@_;@b{@_}=(\$b)x@_;\$sum+=\$b*@_}\$sum}

I never new how hard obfuscation is! </code>

```--
Brigitte    'I never met a chocolate I didnt like'    Jellinek
http://www.horus.com/~bjelli/         http://perlwelt.horus.at```

Create A New User
Node Status?
node history
Node Type: note [id://80383]
help
Chatterbox?
 [james28909]: compiled and install perl 5.16.3 in WSL [james28909]: seems to work fine so far. have not tested any modules yet though

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2018-05-22 22:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
World peace can best be achieved by:

Results (166 votes). Check out past polls.

Notices?