遠い昔、はるか彼方の銀河系の カレンダー の、解題と皆様の実装
「遠い昔、はるか彼方の銀河系の カレンダー」という問題を「初級編 ( https://codeiq.jp/q/2597 )」と「ややリアル編( https://codeiq.jp/q/2598 )」の2題に分けて出した。
多くの方に挑戦いただき、うれしく思っています。ありがとうございます。
解題
問題の内容や解説は
遠い昔、はるか彼方の銀河系の カレンダー - Qiita
や
「遠い昔、はるか彼方の銀河系の カレンダー」問題解答 ( CodeIQ ) - ange1のブログ
を御覧ください。(書いていただき ありがとうございます)
で。
出題意図は:
「ツェラーの公式 を発明してください」
というものだった。これを「ツェラーの公式」をにおわせないで出したい。
そいで。
- 現実のカレンダーを使うと発明ではなく引用になってしまうので、架空のカレンダーにする。
- ただ問題を出すだけだとツェラーの公式は不要になってしまうので、ゴルフにする。
ということになった。
とはいえ。下記リンクを見ていただければわかる通り、ツェラーの公式を発明せずともバイト数の要件を満たしてしまうので、その意味では出題者(私)の敗北である。
皆様の実装など
上記の解説ページ以外では、以下のものを発見した。みなさまありがとうございます。
Ruby(53)
— masaki goto (@g_m_k) 2016年3月25日
putc eval("2*"+gets.tr('.A-K','+036363636262'))%7+116https://t.co/dt7PTLYOTj
Ruby(99)
— masaki goto (@g_m_k) 2016年3月25日
y,m,d=gets.split ?.
m=(m.ord+7)%11+2;y=y.to_i-m/8
putc 122+(2*y-y/20+y/80-y/4000+219*m/7+d.to_i)%-7https://t.co/LtqQpEGCz2
Ruby(104)
— 海老コチニール (@ebicochineal) 2016年3月25日
putc 116+eval("(y=%s)*2+(m=?%c.ord-65)*3-5+(m*7|15)%%5-(m>3?y:y-=1)/20+y/80-y/4000+%s"%gets.split(?.))%7https://t.co/mt2SzHU8n4
#キュラ暦 (Perl(60)) ($y,$_,$d)=<>=~/\w+/g;print chr(($y*2+$d+2+3.417*ord)%7+116)
— stephen_dole (@stephen_dole) 2016年3月25日
#ラゲ暦 (Perl(110)) ($y,$_,$d)=<>=~/\w+/g;$m=(7+ord)%11;$y--if$m>5;print chr(($y*3-$y%4e3*2+$y%80*2-$y%20+($m*23+4)/7+$d-2)%7+116)
— stephen_dole (@stephen_dole) 2016年3月25日
※ 他にもあったら Twitter などでお知らせください。追記します。