anarchy golf

Factoradic Decoder

#久しぶりのブログ更新。ずいぶん間が空いてしまった。 一連の、Factoradic 問題が先ほど終了した。その中で、Factoradic Decoder では、C言語で、79B@hinoe さんに 3B 差で負けた。hinoe さんの解を見ると、全体的な方針は同じだが for 文の一重化で差がつ…

Excess3 & binary increment

Excess3 not さん作の問題。not さんは、いつもいい問題をつくるな。 C C は 65B でトップを取れた。以下のコード。 i;main(c){for(;read(i%=4,&c,1);)putchar(c<11?c:c+3>>i--+3&1|48);} i;main(c){for(;read(i%=4,&c,1);)putchar(c<11?c:c+3>>3-i++&1|48);…

Joshephus or MamakoDate Sequence EASY

Joshephus or MamakoDate Sequence EASY はなかなか面白い問題だった。C トップのinaniwa さんの解は少し解読しようとしたけど、ちょっとわからないな。301 さんの解も同じアルゴリズムのようだ。いずれにせよ、配列になんらかデータを蓄積するのではなく、…

Power Set

ちょっと前に http://golf.shinh.org/p.rb?Power+Set が終了した。この問題は、Power Set の表現と数値(二進数)との対応関係に気付くと解答が得られる。つまり、 0: 0 1: {0} 2: {{0}} 3: {0, {0}} 4: {{{0}}} 5: {0, {{0}}} 6: {{0}, {{0}}} 7: {0, {0}, …

最近のあなごる

Difference of hinoe さんの C 解。以下の通り。 main(a,p)char*p;{for(;*++p||!gets(p=&a)-puts();)*p=p[1]?abs(p[1]-*p)+48:0;}この解の面白いところは、*++p の部分。for 文の一重化を行う際、キーとなることの一つに、変数の初期値がある。たとえば、上…

最近のあなごる問題

Deadfish、Ejection は、正直あまり興味なかった。Ejection は、著者に勝手に単純化したバージョン Ejection simplified を作成して投稿した。割と面白かったと思う。著者にはちょっと申し訳ない感じ。すみません。 Ejection simplified では、kou さんとち…

Function call expression & SQR

「いつまでも治らないバグ。迫りくるデッドライン。コードゴルフはじめました〜♪」 「MS11-022。あてたらパワポが使えない。コードゴルフはじめました〜♪」 「誰よりもDISK使うアンチバイラス。リブートしたらブルースクリーン。コードゴルフはじめました〜♪…

最近のあなごる

また、だいぶ日記が空いてしまった。 Integer Ranges 入力データに、291 という数があり、問題ミスかと思っていたが、 -1<<290とすると -1<<2と同じで、-4 になる。C だけでなく、JavaScript も Groovy も同じだった。なので、結果的に、291 という入力を特…

Bankers rounding

先ほど、Bankers rounding が終了した。この問題では、C で新たな発見(私にとっての)がいくつかあり、面白かった。 その1 printf() の "%.f" の丸めモードは、「最近接偶数へのまるめ」(と呼ぶのか)のようだ。本問のタイトル "Bankers' rounding" だ。端数…

最近のあなごる問題

ビンラディンの件はびっくり。アメリカはしばらく厳戒態勢なんだろうな。9・11みたいな報復がないことを祈っているが、株はちょっと売り払った。 さて、あなごるは、ここのところ問題が多い。まぁ、質の悪い問題も多いようだ。間違っているものは修正して…

最近の問題から

日記が滞りがちだ。なかなか継続は難しい。 Farey sequence Cはよく縮まり、最終的にnot さんの94B に追いついた。ロジックもほとんど同じだった。縮め甲斐のある面白い問題だった。因みに、88B(rand)解は以下のよう。 m=1,i;main(g,n){for(n%=9u;i%g+m%g?g-…

Over print

Over print 終了。 JavaScript xulapp さんの解。 for(a=[];s=readline();print(a.join('')))for(i in s)a[i]=a[i-s[i]]||s[i]の a[i-s[i]]の部分がみごと。i は数値とすると、 i - ' ' ==> i i - 'a' ==> NaNなので、a[NaN] は undefined となり、結局、s[i…

ひさびさのゴルフ

2月下旬からかなり忙しかった。休日出勤したのも久しぶりだ。この日記もひと月空いてしまった。あと、もう少し。4月になれば少し楽になると思う。 さて、いくつかゴルフの話題を。 shell game EASY C 単独トップを取れたのはうれしいが、それよりも、この…

Numbering

Numbering が終了。 JavaScript murky-satyr 氏復活だ。強い。 32B@JavaScript by murky-satyr !function f(n,x,i){for(i=n/n;i<4;f(n-1,' '+x+i+++'.'))print(x+i)}(readline(),'')ロジックは私の解と同じだが、i=n/n が光ってる。n=0 の時、i=NaN になるの…

Squares Round 2 & ON bit fixed

Squares Round 2 Round 1 の Squares Fixed より難しいが、基本的には同じだ。Round 1 の not さんの C 解をベースに組み立てた。JavaScript や Groovy では、出力前に trailing space を取り除くことが簡単にできるので、さらにシンプルな解ができた。 ON b…

最近のあなごる問題

Spiral Fixed なかなか難しい問題だった。どうアプローチするのが最善なのかわからない。私は以下の方法で解いた。他の人の解は結局調べていない。 05 15 25 35 45 55 04 14 24 34 44 54 03 13 23 33 43 53 02 12 22 32 42 52 01 11 21 31 41 51 00 10 20 30…

Ellipse circumference

楽しみにしていた Ellipse circumference が公開になった。まったくかなわなかった notogawa さんの C の解。 float x,a,b; main(n){ for(;~scanf("%f%f",&a,&b);printf("%.f\n",x)) for(n=4e3;--n;)x=a*6.2832+(n-2+.75/n)/n*(1-b*b/a/a)*x; }これ、すごい…

Heavy Rotation

Heavy Rotation 終了した。C トップ nai さんの解は、基本的にはShifting Pattern Fixed by nai さんと同じ strncat() かぁ。しかし、うまくまとめるなぁ。nai さんには、かなわない。C 2 位の inaniwa さんの解もすごいと思う。変数名に、A/K/B を使うとこ…

toggleCASE

toggleCASE が終了した。 C 4 人が 55B で並び、しかも、stats が同じ。もう、『みんな同じコードにたどり着いたんだ』と疑いもしなかったら、なんと、全然違うコード。しかも、公開後、nai さんにより、54B がでた。単独首位の可能性って、残ってたんだなぁ…

Character distance

Character distance 問題としては単純(!=簡単)。まず、index() とか indexOf() とか使う方法が思いつくが、検索開始位置の調整や、距離の微調整が必要になり効率が悪い。で、rindex() や lastIndexOf() を使うようにするとその点が見事にクリアされて縮…

Old Magician & permuatation date

Old Magician この問題は、結局、2番目の数値が奇数なら"BLACK"を、偶数なら"WHITE"を出力するというもの。単純な問題だ。ポイントは、1行目の要素数をどうやって無視するかということ。 C言語では、解法は若干の違いで 2 通りあったが、全員 88B で並んだ。…

List of numbers to factor

List of numbers to factor が終了した。 素因数分解する元の数列が何なのか、ちょっと楽しみにしていたが、答えは、zzo38 さんの解、以下の通りだった。 ls / | od | factor | sort -n | uniq数値には、8 と 9 が出てこなかったので、8 進数だとは思ってい…

Squares Fixed

Squares Fixed 終了。この問題は、入力の1行が、出力の2行に影響を及ぼすパターンで、難しい問題だった。C / JavaScript ともトップに大差を付けられて惨敗。途中から、縮められる気がしなくなってしまって、手がつかなくなった。ゴルフもこのくらいのレベ…

27c3_Generate C & Number mountain

27c3_Generate C と Number mountain。どちらも好きな系統の問題だ。 27c3_Generate C 第27回Chaos Community Congressというイベントで出題された問題だ。終了し解答が公開されたが、Perl と Python の 1 位の解が変だ。ファイルを用意しておいて、それを読…

最近のあなごる問題

long decimal Endless 問題。998 が何で飛んでいるのか?っと思っていたが、その理由に気がついたら、Groovy が、43B から 25B に一気に縮んだ。これはなかなか面白かった。 C はトップとの差 1B が縮まない。 Mental calculation まぁ golf っぽい問題だと…

sort

sort が終了になり公開されたが、C の aglias さんの解が凄すぎる。qsort() のコンパレーターとして、文字列を渡してる。これ、コンパレーターの機械コードだ。ちょっと実験してみた。 main(a,b,c){ int(*f)()="YXZQQQ\x8b\x00+\x02\xc3"; a=10;b=20;c=f(&a,…

Christmas tree

Christmas tree が終了した。 JavaScript 私の解。it オブジェクトに出力行を覚えていって、最後に再び一行目を出力するという方法。当初、79B は以下のようだった。 for(i=n=readline(s='*');i--;s+='**')print(i?it[i]=Array(i).join(' ')+s:it[n-1])これ…

Comparing two numbers

Comparing two numbers が公開になった。 C 61+(a>b)-(a<b) // 78B a>b?62:61^b>a // 77B 61+(a>b)^a<b // 76B上記 78B の式は、まぁ、よく知られた式だ。私のは 77B。ここから縮まないのであきらめた。76B はトップ not さんの式。こうしてみると確かにそのとおりだなぁ。でも、思いつけなかった。 Groovy Groovy は、"" 演算子だ。 a<=>bとすると、ab に応じて、-1, 0, 1 の値をとる。Groovy がお手本としている ruby にある演算子のようだ。他の人の答えを見ていると、Perl…</b></b)>

最近のあなごる問題

weekday names 当初『埋め込み+圧縮』かと思っていたら、曜日名を出力するフォーマッターがあることが分かった。 js Date オブジェクトに toLocaleString() メソッドというのがあった。'%A' で曜日名が得られる。ロケールが US English なので、Monday ... …

Lollipop & Lollipop KPop version

Lollipop と Lollipop KPop version がたてつづけに終了。 C この問題は、どこで区切って繰り返しとみなすかが難しい、というか、取っ掛かりにくい。結果的には、シンプルな方法が見つかり、68B でトップが取れた。 "^C^F"[i++/14^i%5]この部分が、3,6,0,0,0…