Subscribed unsubscribe Subscribe Subscribe

Golfにチャレンジ

Perl Golf

golfの世界にも触れてみようと思って、チャレンジしてみた。
とりあえずこの問題を。
anarchy golf - paper sizes
一晩考えてみたけど、この程度しか思いつかない ><

$c=$a,printf"A%-2d%5dmm x%5dmm
",$_,$a=$b/2||841,$b=$c||1189for 0..10

69B orz
現時点でPerlは61Bがトップ。
何かやり方が根本的に違うのかなぁ。むぅ…難しい けど面白い

追記

printf"A%-2d%5dmm x%5dmm
",$_,($a||=1682)/2,$a/=1.414for 0..10

62B! あと1歩で追いつけるぞ…
こういう反則的なやり方がGolfの技術なのかなw

追記

printf"A%-2d%5dmm x%5dmm
",$_,($a||=1683)/2,$a*=.707for 0..10

61B!! ktkr
0.707..のような少数は整数部分が0なら省略できるw
sqrt(2)/2 = 0.707106781186548だけど、3桁目までで何とかずれずに使える。
1189*sqrt(2)は1681.4999...とかでどう考えても1681か1682にすべきところを、あえて1683にすることで理想の出力が得られる。
もう一人の61BのヒトはStatisticsが違うから違うやり方なんだろうなぁ。他にどういう方法があるんだろう。。

追記

余計な演算子使わずに普通に最初に代入して使えばよかった。アホかw

追記

ちょっと変則的なカンジで60B。

printf"A%-2d%5dmm x%5dmm
",$a++,$b/2,$b*=.707for($b=1683)x11

しかし59Bは思いつかない…!!