in reply to Golfing cryptosums

A first pass to check the output complies with the rules?

@c='A'..'Z';map{$x.=splice@c,rand@c,1}1..10;($d,$s)=@ARGV;$n=$d+2;sub +p{$t="%${n}s\n";printf" $t+$t ".'-'x$n."\n $t\n",@_}sub x{eval"tr[0-9 +][$x]"for@_}map{@a=map{int rand 10**$d}1..2;$a[@a]=$a[0]+$a[1];x(@a); +p@a}1..$s

Updates:

176

$x=join'',sort{.5<=>rand}A..Z;$s=pop;$n=2+pop;$t="%${n}s\n";map{@a=map +{int rand".1e$n"}1,1;$a[@a]+=$a[0]+$a[1];eval"tr[0-9][$x]"for@a;print +f" $t+$t ".'-'x$n."\n $t\n",@a}1..$s

167

$x=join'',sort{.5<=>rand}A..Z;$s=pop;$n=1+pop;$t="%${n}s\n";map{$a[2]+ +=$_ for@a=map{int rand".1e$n"}1,1;eval"y/0-9/$x/"for@a;printf" $t+$t +".'-'x$n."\n $t\n",@a}1..$s

165

$x=join'',sort{.5<=>rand}A..Z;$s=pop;$£=1+pop;$t="%$£s\n";map{$a[2]+=$ +_ for@a=map{int rand".1e$£"}1,1;eval"y/0-9/$x/"for@a;printf" $t+$t ". +'-'x$£."\n $t\n",@a}1..$s

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP PCW

Replies are listed 'Best First'.
Re^2: Golfing cryptosums (218)
by ELISHEVA (Prior) on Aug 09, 2009 at 13:56 UTC

    Looks right to me!

    Best, beth

      $;=1+shift;$t="%$;s ";@x=sort{.5-rand}A..Z;map{printf" $t+$t-$t $t ",grep 1+s/\d/$x[$&]/g,@a=map(0|rand".1e$;",0,1),'-'x$;,$a[0]+$a[1]}1. +.pop

      BrowserUK's solution, only improved a little. Few quick tricks:

      • plain enter used instead of \n
      • s///e used instead of eval"y///" - it is almost always shorter
      • int ... can be shorter: 0|... or 0^...