カメヲラボ

主にプログラミングとお勉強全般について書いてます

うるう年

http://golf.shinh.org/p.rb?leap+year
うるう年かどうかを判定するプログラムです。さっきとりあえず書いてみたら、Cで91Bのコードになりましたが、Rubyだと70Bくらいでしか書けません。なので、Cはもっと縮むんでないかなーと思うのですがどうでしょうか。それなりにテストケースは多いですが、入力依存のコードを書くことは可能なので、ビット演算とか剰余とかを工夫すれば…と思ったりします。ヒマな人はレッツちゃれんじですよ!

deadlineから妄想

deadlineがある問題をやっていると、そのとき思いついたことがすぐ日記に書けずに忘れてしまうことってよくある気がするのです。っちゅうわけで、はてなにdeadline記法みたいなのがあるとラクチンだなーとか思いますが、需要はとっても少なそう…。というか、ゴルフサーバとBlogサービスが連動してれば良いんですよね。ゴルフサーバがメジャーになって、どこかの会社に買い取ってもらえば良いんですよ、で、その会社が定期的にコンテストを実施して、ゴルフの賞金だけで生活できるような人が出てくれば本当のプロゴルファー誕生ですよねー。なんて、一人で盛り上がってみる。

お亡くなり!?

どうやら直接蘇生を行わないと死んだままのようです。寂しいですねー。しかしサーバが復活するまでボケーっとしてるのもアレですから、ゴルフできない期間を利用して新生穴ゴルサーバーに追加してほしい機能とか、なんか新しいアイデアを考えましょー > 皆さん

えーと、今思いついたのは、deadline付きの問題の場合だけ期間内は記録が表示されない(順位だけ)にすると結構燃えるんじゃないかなーっていうのです。PKUのコンテストでは期間内だけ記録が表示されなくて、結構ドキドキしたので。あと、FizzBuzzみたいに100人以上postしていると記録を見るのが大変なので、20人くらいで区切って表示とかしてもらえると良いかなー。

んー、あと何があるやろ・・・

123

http://golf.shinh.org/p.rb?123
さすが穴ゴルとしか言えん問題です。如何に高確率で狙えるかがポイントかと思われます。kurimuraさんの記録をみて、「ちょww」と思いました。しぇるぴんすきーが好きーくない人はこれで全言語制覇したらいいじゃないかなー。

  • 追記

しょーもないスクリプトを書いているヒマがあったらps axで最初から無理なことに気付いとけ、というかそのくらい知っとけという醜態。

  • 攻撃しちゃってごめんなちゃいのまとめ

私と同じようなことをしている人(と考えている人)が何人かいるはずなので、1つの情報としてまとめておきます。実際にRubyやらPerlで参加してみた人はよくわかっていることだとおもいますが、テストケースが2つ以上ある場合は連続して実行されるのでプロセスIDが連番になります。ただし、実行時には不信なプロセスでないかトレースされているので1回に2プロセス、つまり2ずつプロセスIDが増加していることになります。もし運良く最初のプロセスIDが2または3であってくれれば、プロセスID/2で1,2,3と出力されるはずです。てなわけで、昨日の夜22時頃プロセスIDの状況をちょろっと見てみますと、結構大きな値にまで増加していました。その間にコマンドラインから直接Submitできるスクリプトをちょちょっと作っておいて、ご飯食べてうだうだしてふにゃふにゃして大体0時頃だと思います。「んーそろそろかー」と思ってもう一度プロセスIDをチェックすると、32767に近づきつつあったのでスクリプトを実行。その間プロセスIDの増加状況を見ていると、明らかに複数の人間が同じ事をしている(笑)
そんなこともあって、比較的短時間(1:00前)でプロセスIDは1周してしまいました。予定通りにプロセスIDが2か3に割り当てられていればめでたしなのですが、自分が動かしたスクリプトのログを見てみると0から300くらいが明らかに抜けています。後になってps axコマンドで「あちゃー(ノд`)」てなことに気付いたのですが、そのときは、なんでかなーと思ってとりあえずプロセスIDをもう1周させることにしました。とはいえ、1万回以上Submitするわけにもいかないので、1回のSubmitでプロセスを大量起動できるようにfork爆弾を投入しました。これで手っ取り早いやーと思ったのですが次第にわけのわからない出力になり、ついには反応が無くなりました。「やっちゃった(;´д`)」このとき大体1:20。
「ごめんなさいごめんなさいごめんなさい」と思いながら就寝です。で、朝見てみたらすぐに復帰していたようで安心。まあそんなことがありました。というわけで、この方法ではダメです。プロセスIDをがんがん増やす前にちゃんと下調べしておけよってとこで、今回は反省。