#!/usr/bin/perl use integer; my $field ='800040103000500700130000000000206080500000004020407000000000031002004000604070005'; $field =~s/[^\d]//g; $field =~s/(\d)/$1,/g; $field =~s/([1-9]),/(2**($1-1)).","/eg; my %h; for (1..9){$h{2**($_-1)}=$_}$h{0} = "-"; my $old = 'init'; my $new = ' 2nd init'; while ($old ne $new){ $new = ''; my $z = 0; for my $i (0..80){ my ($cell) = $field =~ /(?:\d+?,){$i}(\d+)/; my $b=($i/27)*27+3*(($i%9)/3); my $c =($i%9); my $r = ($i/9)*9; if ((!($cell))or($cell & ($cell - 1))){ $field =~ s/((?:\d+?,){$i})(\d+)/$1$z/; my $hb; map{$hb.=$_}map{/(\d+,\d+,\d+,)(?:\d+,){6}(\d+,\d+,\d+,)(?:\d+,){6}(\d+,\d+,\d+,)/}$field=~/(?:\d+,){$b}(.*)/; my $hc; map{$hc.=$_}map{/(?:\d+,){$c}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)/}$field=~/(.*)/; my $hr; map{$hr.=$_}map{/((?:\d+,){9})/}$field=~/(?:\d+,){$r}(.*)/; my $ha = $hr.$hc.$hb; my $nset = 511; map{($_ & ($_ - 1))?():($nset = ($nset & (511 ^ $_)))}$ha =~/(\d+),/g; my $oset = 511; map{$oset = ($oset & (511 ^ $_))}$hr=~/(\d+),/g; ((!($oset & ($oset - 1)))and ($oset))?($nset = $oset):(); $oset = 511; map{$oset = ($oset & (511 ^ $_))}$hc=~/(\d+),/g; ((!($oset & ($oset - 1)))and ($oset))?($nset = $oset):(); $oset = 511; map{$oset = ($oset & (511 ^ $_))}$hb=~/(\d+),/g; ((!($oset & ($oset - 1)))and ($oset))?($nset = $oset):(); $field =~ s/((?:\d+?,){$i})(\d+)/$1$cell/; $cell = $nset; } $new .= "$cell,"; } $old = $field; $field = $new; } print "$field\n"; #### #!/usr/bin/perl use integer;use bigint;my $f = 81533903674988925896466391953910886358251535807693868444296494056897195949107537 + (2**266);$f =~s/(\d)/$1,/g;$f =~s/([1-9]),/(2**($1-1)).","/eg;my $scratch = ' ';my $hctarcs;my $a = sub{'(\d+,\d+,\d+,)(?:\d+,){6}'};while ($scratch ne $hctarcs){$hctarcs = ' ';for (0..80){my ($fantabulous) = $f =~ /(?:\d+,){$_}(\d+)/;my $b=($_/27)*27+3*(($_%9)/3);my $c =($_%9);my $r = ($_/9)*9;if (($fantabulous < 1) or ($fantabulous & ($fantabulous - 1))){ $f =~ s/((?:\d+?,){$i})(\d+)/$1$z/;my $hb;map{$hb.=$_}map{/(\d+,\d+,\d+,)(?:\d+,){6}(\d+,\d+,\d+,)(?:\d+,){6}(\d+,\d+,\d+,)/}$f=~/(?:\d+,){$b}(.*)/;my $hc;map{$hc.=$_}map{/(?:\d+,){$c}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)(?:\d+,){8}(\d+,)/}$f=~/(.*)/;my $hr;map{$hr.=$_}map{/((?:\d+,){9})/}$f=~/(?:\d+,){$r}(.*)/;my $ha = $hr.$hc.$hb;my $nset = 511;map{(($_ & ($_ - 1)) and ($_))?():($nset = ($nset & (511 ^ $_)))}$ha =~/(\d+),/g;my $mmmm_nice_yummi_scrumptious_bagels = 511;map{$mmmm_nice_yummi_scrumptious_bagels = ($mmmm_nice_yummi_scrumptious_bagels & ($mmmm_nice_yummi_scrumptious_bagels - 1))}$hr=~/(\d+),/g;($mmmm_nice_yummi_scrumptious_bagels & ($mmmm_nice_yummi_scrumptious_bagels - 1))?($nset = $mmmm_nice_yummi_scrumptious_bagels):();$mmmm_nice_yummi_scrumptious_bagels = 511;map{$mmmm_nice_yummi_scrumptious_bagels = ($mmmm_nice_yummi_scrumptious_bagels & ($mmmm_nice_yummi_scrumptious_bagels - 1))}$hc=~/(\d+),/g;($mmmm_nice_yummi_scrumptious_bagels & ($mmmm_nice_yummi_scrumptious_bagels - 1))?($nset = $mmmm_nice_yummi_scrumptious_bagels):();$mmmm_nice_yummi_scrumptious_bagels = 511;map{$mmmm_nice_yummi_scrumptious_bagels = ($mmmm_nice_yummi_scrumptious_bagels & ($mmmm_nice_yummi_scrumptious_bagels - 1))}$hb=~/(\d+),/g;($mmmm_nice_yummi_scrumptious_bagels & ($mmmm_nice_yummi_scrumptious_bagels - 1))?($nset = $mmmm_nice_yummi_scrumptious_bagels):();$fantabulous = $nset;}$hctarcs .= "$fantabulous,";}$scratch = $f;$f = $hctarcs;}$f =~ s/(\d+),/$1/g;print "$f\n";