2010年04月15日

[TopCoder] MarathonMatch59 submit1

今回はちょっと参加してみるには、とても簡単なお題で楽だな。

30分でsubmitできた。

なぜか、高さ順に並べて詰め込んでるけど
この仕組みのままごにょごにょするだけでも
自分的には、まーまーのプログラムになるだろう。
時間的にはあと1時間くらいか。

すばらしい…
前回は、素数とか意味不明すぎて
たった9点のプログラムをsubmitするだけで何時間もかかったからなぁ


トップクラスはあと1冊をどう詰め込むか?
みたいな勝負になるのかな?
まーその辺は二週間後を楽しみにしてよう
posted by idaten! at 18:55| Comment(2) | TrackBack(0) | プログラミング

[TopCoder] MarathonMatch59

参加する時間があるか分からないけどMM59の問題文を読んでみたところ

今回は自力で読めた!

無効な値あたりが若干わからないけど、大筋では理解出来たと思う。
素数も出てこないしw


なんか学生に戻ったみたいで楽しいなコレ
posted by idaten! at 13:00| Comment(0) | TrackBack(0) | プログラミング

2010年04月05日

寄り道中 [TopCoder] Marathon Match 58

TopCoderと呼ばれる、定期的にプログラミングコンテストを開催しているサイトを知りました。

英語オンリーなので私も全然訳が分かってないのでTopCoderの詳しい説明はGoogleに任すとして
プログラムに点数が付いて競い合う事ができるというのは、
プログラミング好きにとってこれほど楽しい遊びはないって感じですね!
これを10年前に知っていたらさぞかし熱中しただろうと思います。
世の中には面白い物が色々あるもんですね。


続きを読む
posted by idaten! at 13:00| Comment(0) | TrackBack(0) | プログラミング

2009年10月23日

MySQL Query Browser → DBViewer

DBにSQLを流すのに「MySQL Query Browser」を使っていたんですが、
なんだか突然使えなくなりました。
もともとSQL内に日本語があると表示が崩れたりしていたんですが
最近はちょっと使うと突然落ちるようになってしまって使い物にならない…
仕方ないので、eclipseのブラグインに乗り換えることにしました。

もともと、eclipseのテキストエディタでSQLを書いて、「MySQL Query Browser」に貼り付けていたので始めからプラグインを使えばよかったんですが、プラグインの設定ってちょっとめんどくさいイメージがあって、さくっと使える「MySQL Query Browser」を使ってたんです。

それで、「データ管理」と「DBViewer」と2つ比較してみようと思ったんですが
「データ管理」は全然安定しなくて比較するまでもなく「DBViewer」を使う事にしました。
「DBViewer」は基本的には非常に安定していてシンプルで分かりやすいです。
(こちらも環境によっては不安定な事もありますが)

コンテンツ・アシストはやっぱり便利ですね
(趣味が合わないので使いませんが)自動整形もありますし
とにかく、eclipseの中だけで完結できるのがいいです。


でもまぁ、ツールは便利でも偏差値での集計はうまくいかないまんまですが…
posted by idaten! at 12:12| Comment(0) | TrackBack(0) | プログラミング

2009年10月21日

SQL 切り捨て(truncate)

前回の集計をレート別で再集計します。
1500台、1600台...という風にしたいので10の位以下を無視したいです。
ぱっと頭に浮かぶのは、
100で割ってintにキャストして100掛ける
ですが、調べてみたら切り捨てが応用?できました。
Cやjavaで切り捨てというと小数点以下を意味しますが
MySQLでは切り捨てる桁にマイナスを指定すれば小数点以上も切り捨てられます。
truncate(rate_avg, -2)
小数点以下-2桁を切り捨てて、レートを100単位にする事が出来ました。
まぁ、10の倍数以外で丸めたい時は割って掛けるしかないかな。

結果は次の日記...


おまけ(集計中のデータの卓の平均レート別試合数)
レート別試合数
posted by idaten! at 20:00| Comment(0) | TrackBack(0) | プログラミング

2009年10月20日

SQL 場合分け(case when then else end)

1プレイヤーの1局の結果を以下のように定義しました。

#kyoku_result
# 1=不聴、-2=被自摸、-3=放銃
# 0=他家和了&他家放銃
# 1=聴牌、2=自摸和、3=栄和

このデータから和了率と放銃率などを一発で抽出するSQLは知らなかったんですが
まぁ何とかなるだろうと思って…

続きを読む
posted by idaten! at 18:00| Comment(1) | TrackBack(0) | プログラミング

2009年10月17日

バグバグバグ、休日蒸発中

テーブル作成
  ↓
データ登録(時間かかる)
  ↓
テスト集計
  ↓        ↓
いけそうだ   データがおかしい
  ↓        ↓           ↓
ブログを書く  SQLがおかしい  プログラムのバグ発見!
  ↓        ↓           ↓
最終チェック  テスト集計に戻る   はじめに戻る
  ↓
やっぱりデータがおかしい
  ↓
ブログの記事をゴミ箱へ
  ↓
 以下略
  ・
  ・
  ・
ブログ投稿(永遠にたどり着けない
いくら頑張っても、データ的記事が投稿できない
ハマったバグを二つほど披露します。続きを読む
posted by idaten! at 23:33| Comment(0) | TrackBack(0) | プログラミング

2009年08月11日

天鳳の牌譜(mjlog)または牌譜URLから卓の種類を取得する

要望があったので解析ツールで卓選択できるように修正しようとしたところ
以前作ったはずの卓の種類を取得するルーチンが見あたらず
(言うほどの物ではないのだけど)
仕方なく卓の種類について調べ直しました。
続きを読む
posted by idaten! at 15:46| Comment(4) | TrackBack(0) | プログラミング

2009年07月17日

高速化

引き続き、解析プログラムを手直し中です。


今回は当初は考慮していなかった速度面をちょっと改善しました。
javaで作っているので、もともと速度にこだわるつもりもないんですが
あまりにも遅かったので・・・

で、XMLパーサーが重いのは分かっていたので
StringTokenizerを使った独自処理に置き換えたところ
予想以上に速くなりました。

GZIPInputStreamが以外に高速な事も分かりました。
続きを読む
posted by idaten! at 13:00| Comment(0) | TrackBack(0) | プログラミング