2010-01-01から1年間の記事一覧

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)>

ペットに課税

cat

民主党がペット課税を検討しているとのこと。 http://www.yomiuri.co.jp/atmoney/news/20101126-OYT1T01170.htm なんと「税収を処分費用に充てることを想定」しているとのこと。こいつら馬鹿だ。お前らにとっての問題は、殺傷処分の費用なのか?それが民主の…

GroovyのLongとInteger

Groovy で、partition by parity を解いている時に、またちょっと、うざい挙動にぶちあたった。 m="10 11 12".split()*.toLong().groupBy{it%2} println"$m" //-> [0:[10, 12], 1:[11]] println"${m[0]}" //-> null println"${m[1]}" //-> nullとなる。なん…

最近のあなごる問題

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

読んだ本

三津田信三さん『水魑の如き沈むもの』 2010年本格ミステリー大賞受賞作だ。前半が、ちょっと長く、たるい。また、本作は、ちょっとギャグが目立つ。あまり要らないと思う。ただ、中盤からはもう止まらなくなる。『山魔』同様推理が二転三転しその臨場感がた…

Lollipop & Lollipop KPop version

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

Bigger power of two

Bigger power of two終了。 C 当初、log2() を用いて、58B でトップに立ったが、hinoe さんに 57B で抜かれた。色々と考えているうち、浮動小数点数の指数部が使えるのではと思いつき、さらに試行錯誤していたら、57B ができた。ちょっと感動だった。 ところ…

あなごる 1000 投稿達成

あなごるへの投稿数が 1,000 を超えた。まぁ、終了・公開後の投稿も含めれば、もっとあるけど。 初投稿は、2008/3/14 あたり。もう、2年半か。はじめ、Groovy を勉強しようと思ってネット上の資料を色々探していたら、あなごるにたどりついた。多分、はじめ…

Linux words

Linux words 終了。面白い問題だった。 C C は最後に kou さんに抜かされ 1B 差で負けた。この解は、 j+=j!=2|!p[3]がすごい。j は、0, 1, 2, 2,...... 2, 3, 4, 5 と変化する。ただ、他の部分は、ループ一重化に拘りすぎたのか、単純な二重 for 文にするこ…

perfect square free

この問題は、なんで、'[' と ']' で囲むのだか意味が不明なのが印象的だった。Groovyだと、print([1,2,3])とやると [1, 2, 3] となってとても都合がよい。Ruby も同様なのかな?Ruby 好きが作った問題かな? C C は、結構ギリギリになって、inaniwa さんに追…

Tic Tac Toe

Tic Tac Toe が終了。 vi この問題は、vi が面白かった。はじめ、一番初めの図形を作り、コピーして、OX を付け加えていき完成形を作っていたが、発想を逆にして、完成形を作ってから、ひとつひとつ空白に置き換えていくようにしたら、ぐっと縮まった。各ル…

falling number

falling number が終了した。面白い問題だったと思う。 JS xulapp さんの解。xulapp さんは、ギリギリまでつめてくるから、かなわない。この解は、destructuring assignment だった。みごとだなぁ。 vi vi は、10 から 9876 まで生成した後に条件を満たさな…

comma format

comma format 終了しました。 JS なんとか、xulapp さんの 47B に追いついた。直前の解は、49B で、以下のよう。 for(;;)print(readline().split(/\B(?=(?:...)+$)/)) '\B' は非ワード境界にマッチし、'(?=X)' は、その '\B' の後ろに 'X' が続いている場合…

comma format

comma format は、C で、85B で 3 人が並んだかと思いきや、yuyarin さんが 74B を出し、inaniwa さんが 72B を出した。やり方が違うのかと思っていたら、yuyarin さんが、C++ で、132B を出している。C と C++ のこの差は、大きすぎるな。おそらく、#import…

Nth prime

inaniwa さんの解。ご自身のブログでも書かれているが、 P[9999];Q;*p;main(n){for(;Q?gets(P)&&... この、配列 P の要素が 9999 を超えたときに、Q が non zero になることを利用した条件分岐、見事です。ただ、ちょっと気になったので、調べてみたら(っと…

Subfactorial FIXED

Subfactorial FIXEDが終了した。BigDecimal の無い言語にはちょっと厳しかったのか、あまり盛り上がらなかった(とはいえ大して面倒とは思わないが。。。)。 Groovy は Java 系で BigDecimal があるので、短い解が得られた。 色々な人の解を見てみると、ruby …

C Style constants

C Style constantsが、先ほど終了した。 C は、scanf() の "%i" か。scanf() の man すら調べもしなかった。 〜〜〜 この問題で面白かったのは、inaniwa さんの解答だな。引用すると: main(s){for(;gets(&s,0.);)printf("%d\n",strtol());} ベースとなってい…

Soroban Fixed 他

Soroban Fixedが公開になった。 C nai さんに、137B で追いつかれたとき、確か stats が一致していたので、136Bも似たコードかと思っていたら、結構違っていてびっくり。 私が、144B から 137B まで縮めるきっかけになったのは、行カウンターを 0 や 1 から…

base convert

base convert が終了した。 C やった。久しぶりに勝てた。私の解。この解は、われながらちょっと傑作で、変数 v を終点として結果の文字列を構成していくと、ちょうど結果が出来上がると同時に v が 0 となるので、puts()が使えるというもの。その様子が、 *…

読んだ本

三津田信三さん『厭魅の如き憑くもの』 『首無しの如き祟るもの』に続き読んだ。このシリーズ面白い。主人公、刀城言耶氏が、鋭く事件を解明していくが、その推理が二転三転し、むしろ、それが臨場感がある。また、長編で読み応えがしっかりあるのもいい。続…

Sort by Length for OCaml Golf Competition

Sort by Length for OCaml Golf Competitionが終了し公開になった。 C C は、なかなか短くならず、結局、投稿出来ずじまいだった。トップ inaniwa さんの解は、とりあえず strcmp でソートして、あとは、結果を何回も舐めて、短い順に出力する、というものだ…

box paint & next odd number

box paint JS xulapp さんの解。なるほど。x(?!y) を g フラグとともに使って、こういう風にマッチさせるのか。すごい。 murky-satyr さんの解。こちらは、解明できていない。y フラグを理解していないからな。前に何もない (?!^) もどういうことなんだろう…

Sharkovskii order

Sharkovskii order は、てんで話しになんなかった。js で 131B を打ったが、murky-satyr さんに100B 割れで抜かされた。C など他の言語もまったく追いつけそうもなかったのであきらめてしまった。 ひとつ、キーとなるのは、 n&-n かぁ。過去にあったな。まっ…

data order

data order 終了。 C nai さんに 1B 差で負けた。この問題、for文の数が、3個、2個、1個のどれでも解が作れた。その中で、私がいちばん縮めることができたのは、for文2個のもの。for文1個のものは、91B で行き詰ったのであきらめたのだが、上記、nai さんの…

FizzBuzz

気がつくとFizzBuzz@Javaの記録が更新されていた。wiz さんが 97B を出している。以前は 102B がトップだったのだが、5B も縮められた。どうやっているんだろう。 抜かれてしまったので、102B を公開しよう。 class C{static{for(int i=0;i++<100;)System.ou…

Wide Periodic Table&Another Table

Wide Periodic Table 圧縮問題であまりやる気がなかったのだが、Groovyでnattowさんが縮めてきたのがきっかけでやってみた。元素記号のデータは何らかの形で持たなければならないが、Regular Expressionを用いると割とコンパクトにできるところが面白い。結…