ToDo:
C++ じゃなくてプリプロセッサの方で書けるか、という話。 単に a って書くだけ、とかはナシでちゃんと一個は # がある必要があるみたいなルールで。
とりあえず C のマクロってヤツは改行を出力できないと思うので、 そのへんで既に僕の中ではできない確定しかけてるんだけど、 まぁ cpp 的には改行も空白もそんな違いないだろう的な話で、 改行が空白になっちゃうのは大目に見ることにする…
となると…と書いたのが
#define Q(x)x Q(x) Q(#define Q(x)x Q(x))
とか。 これでまぁいいだろーと出力を見てみると、
#define x Q(x)x x Q(x) Q(#define x Q(x)x x Q(x))
とかになってておかしい。 具体的には余計な x がついてる。
そうか2行目の外側の Q() の中の Q() が展開されちゃうんだなーということで、
#define QQ(x,y,z)x##y##z QQ(x,y,z) QQ(#define Q,Q(x,y,z)x##y##z Q,Q(x,y,z))
まぁこんなとこじゃないでしょうか。 もうちょい短くする方法とかなんとか改行出せないかとかは今度考える
(02:32)
なんかお前はマンガの疲れた人かっていうくらい そこらじゅうにぶつかったりしてた気がする。
理由はあからさまに TLE のせいなんだろうけど、 しかしそろそろ三日間ぶっつづけてコーディングとか できない程度に体力が無いのだろうか。
まぁ今回は特別負担が多かったのかもしれないし、 単に最近なんか疲れてたとかなんかもしれないけど、 歳ってヤツかも知れないなぁとも思う…
というような、ワシも年でのう的なやつとか 若いっていいなーとか、みんなが通る道、 とか的なのは、僕は基本的に嫌いなのだった。
理由は…
ってこれ前書いた気がするな…俺も年かな… 僕が忘れぽいのは昔からですね…
書いた気がするけど見つからないから適当に書くか。 要は
やたら疲れたから会社から帰ってきたものの、 プログラム書くっていうかゴルフがつらい感じなのでどうでもいい文章を書く気が起きた…
SHORTEN 抜かれてるんですよね。 もっと絶望的な大差つけておきたいところですね… こういう時のために手っ取り早く短くできる問題のリストとか作っておくといいんだけどな
(22:10)
WK roll 腐ってたので会社に行って帰ってきた…
会社で縮めたやつを投稿した。
1175.6839 点とかふざけた状態
(10:42)
KD は昨日結構な確率で通ってたコードと等価のコードが TLE 。 notogawa さんの TLE もたくさん見たので、同じ事情かも…
あと HASH も縮むはずだろうと信じてたけど無理だった。 まぁ予想通り僕だけ気の触れたようなコードになってるな… なんかおかしいとは思っていたよ。
あと HEART のトップはバイナリ無しでこれかー。 ていうか離散コサイン変換とかやってるアホは僕だけですかひょっとして。
(17:37)
いつも思うんだけど2倍ボーナスは無駄においしすぎるよな… 僕がトップ取ってる問題はどれもまだのびしろあるから安心感が割とある。
がんばって KD 縮めてたらなんかスコアが増えたり減ったりしてて、 なんかトップの notogawa さんがさらに逃げてたりしたみたいだった。 しかしとりあえず抜いた。 気合い入れなおせばまだもう少しいけるでしょう…
COUNTI, HASH, ODDEVEN の完敗っぷりは情けなすぎる。 ぼくはこんなに Quine さんをお慕い申し上げておりますのに Quine さんたらツレない。 どれも C ゴルフ勝負の段階に達してないんだよなたぶん。 KD の雰囲気から察するに、ゴルフ勝負ならもうちょい近くまで追いつけるだろう…
さてトップ取るための方針は色々あるけど、 要は今トップ取ってるやつを維持しつつ、 notogawa さんがトップ取ってるやつに 他の人がチャチャを入れてくれればいいわけだ…
まあぱっと見る感じ kinaba さん or kik さんががんばれば良い
(05:54)
寝坊したかと思ったけど30分の時差のおかげでちょうどいい感じだ。 何故か祝日に webkit gardener 割りふられてるので 会社に行って roll せんといかん。
いやわざわざ会社行かんでもできそうなもんだけど、 まぁ行った方がやりやすいという話もあるし、 いずれにせよ飯を喰うため外には出るのだし…
ってか 9 revision しか進んでないなさすが休日。 これはやる意味無い感が強いな…
(17:05)
https://github.com/shinh/test/blob/master/sha256.cc
書いた。
SHA256 を書くメリットは次に書く時にかかる時間が大幅に短くなること。
というのは SHA256 というのは自分で書くとなんか絶対バグることになっていて、 そして結果だけ見てもどこがバグってるんだかさっぱりわからんし、 途中の値とかを出力してみても意味がさっぱりわからんという問題がある。
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad となるべきなのに e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 になっている! これは wikipedia からコピペした時に and を & に変え忘れてたからだ! とか推測できる人はたぶんあまりいないので、 まぁそういう問題。
で、これをデバッグする方法は正しく動いてる コードの値と比較するしか無いと思う。 そういう意味で、自分が書いた正しく動く SHA256 のコードというのは財産で、 これによって次回書く時の時間を大幅に節約できるのであった
今回の場合、前回のコードというのはゴルフされてて 色々と結構辛かったので、 今回ゴルフされてないコードが手に入ったのは良かったと言える。
(02:16)
_ いわさき [ご存知かも知れませんが,FIPSに計算途中の値も書いてありますよ. 何をどう間違えたのかさっぱり分からないのはまぁ一..]
なんか SHORTEN に問題が増えてたので解いた。
http://www.spoj.pl/SHORTEN/problems/RECTAREA/
こういうの苦手だなあと思う。
(17:17)
スクリプト言語の || が結構好きだと思う。
# Makefile の引数 target=ARGV[0] # 省略されたら all を使う target||='all'
みたいなやつ。
その拡張として、 ゴルフ的にも普通のプログラム的にも、
a>0?a:b
みたいな形ってよくやりたくなるんだけど、 a を2回書くのがバカらしい。
幸い ruby だと FalseClass#> とか NilClass#> は定義されていない。 つまりだね…
class Fixnum alias :orig_gt :> alias :orig_lt :< def >(a) orig_gt(a) && self end def <(a) orig_lt(a) && self end end
# 引数で 0 以上が指定されればその値、デフォは 4 p ARGV[0].to_i>0||4
とかやってもさほど害は無いわけだ。
もうちょっと一般的には
obj.is_something? ? obj : default_obj
みたいなことをしたくなるよね。
ARGV[0].to_i.check(.>(0)) || 4
みたいな…
Object#check はなんか上の > と < の一般形というか 任意のメッセージを取る感じで、 .>(0) ってのはメッセージと引数をセットにしておくっていう クロージャみたいな何かは ruby2.5 あたりでは 僕の中ではサポートされることが確定してるのでそんな感じ。
このへんのはなし。
http://shinh.skr.jp/m/?date=20090831#p01
というかこれの最後の話。
http://www.kmonos.net/pub/Presen/fltv/FLTV.pdf
(20:05)
今日帰る前にやっていた作業は 僕にアサインされた chrome のバグが発生する HTML がやたらデカくて難解だったので、 500行以上ある CSS+JS+HTML を 20 行弱まで減らすという作業だった。
http://code.google.com/p/chromium/issues/detail?id=66848
で、途中で気付いたのだけど、この作業は結構ゴルフに似ていて、 仕事でゴルフをしたと言ってもいいかなぁと思った。
まぁコードをざっと見て仮説を立てて本質的に関係なさそうな部分を特定して… みたいな作業は人のコードを読んでるって意味であまり普段のゴルフではないか…
(00:42)
前 | 2025年 1月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ notogawa [完敗でした.おめでとうございます. KDは同じ事情です.終盤何故か全然通らなくなりましたね.]
_ shinh [おつかれさまでしたー。大変手強かったです…ゴルフ強い人ってのは言語変わっても強いものだな…と思いました。 C ゴルフ..]