認められること
September 28th, 2006 | Published in Uncategorized
昨日眺めていたTV番組で、家をスタートレック風に改造しすぎて破産した人の話がありました。話自体は、以前/.JPとかで読んだことがあったので特に言うべきこともないのですが、彼をそこに駆りたてたものが胸に残りました。
最初はちょっとした気まぐれで改造してみたんだ。そしたら友達みんながすごいすごいと言ってくれた。そこで、もうちょっとやってみた。みんなは絶賛してくれたよ。あとはもう坂道を転がるだけ (ry
みたいなエピソードだったように覚えています。
人を動かすのに大きく影響するのは、他の人から認められるということなのだと思います。名誉を求めるということも、この認められるという気持ちを強くしていった結果なのかもしれません。
多くの人に認められるということは、他のものに代えることのできない財産なのでしょう。増やしていけるように毎日を過ごしていきたいと思うのでした。
one step further
September 26th, 2006 | Published in Uncategorized
頭をクラクラするくらい酷使しました。のーみそコネコネ。
ComputerScienceの深淵に先がまだまだあること、データ構造とアルゴリズムの知識とその応用がぜんぜんできていないことなんかを身に沁みて知ったのでした。
やっぱり自分の頭で考えたことしか身につかないということですね。久々に大学への数学でもやり直そうかしら。 ちゃらちゃらとスクリプトを書いてる場合じゃない。基本をがっちり抑えておかないと。
課題が分かったことで先へ進む道筋をつけることができた、という前向きな姿勢を貫くのです。
ドナルド・E・クヌース 有澤 誠 和田 英一 青木 孝 筧 一彦 鈴木 健一 長尾 高弘
アスキー (2004/02/18)
売り上げランキング: 39,871
おすすめ度の平均:
読者を未来へと連れて行く、古典中の古典
とにかく買え、苦しめ、そして感動しろ
超豪華な翻訳陣!
a very llittle step closer to
September 15th, 2006 | Published in Uncategorized
ここ数日やきもきとしていたストーリーに、ついに進展がみられました。よかった!
これまで、自分から外へと出ていくことはそんなに多くなかったように思います。 いま、自分から一歩を踏み出して、道を歩きはじめていることに、いちばん喜んでいるのは自分じゃないかな。ほんの少しの前進ですが、とにかく進み始めることができたこと、それをいま祝えること、そんなことがうれしい。
one step closerなのです。closer to ( じぶん | よりよい世界 | みんな | すべて! )
なにに近づこうとしてるのかは分からないけれど、いま立っているところから見える something better を目指して一歩を蹴り出していきたい。いこう。
CodeJam Qualification Round : SystemTestとおった
September 7th, 2006 | Published in Uncategorized
よかったー。 これでこのRoomでは11番ということになりました。750点問題が悔やまれてなりません。
しかし、こんなにもSystemTestでFailする人がいるとは… 早撃ちガンマンなだけではだめということなのですね。スピードと正確さでバランス良く解くのって難しそうだなぁと。
ランキングのスクリーンショット
ちょっと気になったのでとってみました。
Set 3の順位:
Set 3 Room 27の順位: ‘
こんな感じでした。
Google CodeJam 2006 で使ったテンプレート
September 7th, 2006 | Published in Uncategorized
惨敗に終わったCodeJam 2006ですが、ちょっとだけTipsとか。
問題内容を公開してしまうのはルール上違反なのかもしれないので、問題とその解答は書きません。ですが、自分がCodeJamに望むにあたり、ちょっとでも早くコードを書き始めることができるようなテンプレートをつくっていました。 何かの役に立てればと思い公開してみます。
コードは続きにて。
工夫
- 問題のクラス、メソッドなどをマクロにして差し替え可能に
- テストケースをちょっとは簡単に記述できるように
使い方
- XXXが書かれているコメントのところを、問題に合わせて書き直し
- コンパイルオプションに
-DLOCAL_TEST
を加えて
やれば、動くんではないでしょうか。
/*
* Google CodeJam 2006
*
* Template Code
*
* $Id: template.cc 320 2006-09-06 12:28:58Z takayama $
*/
/* ---------------------------------------------------------
* XXX: 1. modify for each case
*/
define CLASS Hoge
define METHOD_RET int
define METHOD_NAME hoge
define METHOD_ARG_T vector < string >
define METHOD_ARG ss
// ---------------------------------------------------------
include
include
include
ifdef LOCAL_TEST
include
include
endif // LOCAL_TEST
define NELM(arr) ( sizeof((arr)) / sizeof((arr[0])) )
using namespace std;
typedef vector VS_;
typedef vector ::iterator VSI_;
typedef vector VI_;
typedef vector ::iterator VII_;
/* ---------------------------------------------------------
* XXX: 2. Problem Solution
*/
class CLASS {
public:
METHOD_RET METHOD_NAME (METHOD_ARG_T METHOD_ARG);
private:
};
METHOD_RET CLASS::METHOD_NAME (METHOD_ARG_T METHOD_ARG) {
return 0;
}
/* ---------------------------------------------------------
* Test
*/
ifdef LOCAL_TEST
template
void test (T &test_case, METHOD_RET assumption) {
CLASS obj;
METHOD_RET ret;
ret = obj.METHOD_NAME (test_case);
cout << "assumption = " << assumption << ", "
<< "result = " << ret << endl;
assert(assumption == ret);
}
void print_VS_(VS_& vs) {
for (VSI_ i= vs.begin(); i != vs.end(); i++) {
cout << *i << endl;
}
}
/*
* XXX: 3. add test cases here
*/
const int test_cases_length[] = {
2,
3,
};
const char *test_cases_arr[][256] = {
{"hoge", "fuga"},
{"moge", "yoga", "daru"},
};
/*
* XXX: 4. add expected result here
*/
const int assumptions[] = {
0,
0,
};
vector test_cases;
int main(int argc, char**argv) {
size_t i;
for (i=0; i < NELM(test_cases_arr); i++) {
VS_ vs = VS_(
test_cases_arr[i],
test_cases_arr[i] + test_cases_length[i]);
test_cases.push_back(vs);
}
for (i=0; i < test_cases.size(); i++) {
test(test_cases[i], assumptions[i]);
}
return 0;
}
endif // LOCAL_TEST
C++のtemplateをつかったら、もっときれいに書けるんだろうなぁとか思いますが、時間がなかったのでついついマクロにしてしまったり、テストケースの書き方がstring専用になってしまっていたりと美しくありません。 でもまぁ今回に関しては実用に足りたかなと。
CodeJam Qualification Round 750点問題
September 7th, 2006 | Published in Uncategorized
ぬおおっ、こっちの方が素早く解けてしまったっっっ!! しかも解答内容に自信あるし。テストケースちゃんと全部通るし。
しまったなぁ、こっちを最初からやっとけば300点くらいはとれたかもだなぁ。
とか言っても、けっきょく300点くらいではこのRoomのベスト10に入れるか入れないかくらいの成績でしかないわけで。きびしいなぁ。
あと、いま割とさっくりとできたのは時間外だからプレッシャーが少なかったというのもあると思います。やはりまだまだです。
ちなみに問題は、Permanentに関するものでした。
追記 :Official Rules and Regulations を読んでも特に問題なさそうなので、問題の概要を加えました。
CodeJam Qualification Round 結果
September 6th, 2006 | Published in Uncategorized
91.62pts
だめだ… OTZ
詳細
- Qualification Set 3 Room 27
- C++で
- 250点問題のみ
- 問題の理解に11分
- ようやく全てのテストケースが通ったのでSubmitしたのが残り1分21秒、ぎりぎりすぎ
- そんなに難しい問題ではなかったのにぃ
- コードの行数 : 213 (テストコード含む)
- 750点問題は覗いただけ
- 現時点で自分のRoomの23番なのでだめでしょう
- 1位の得点がずばぬけてる (955.78 / 1000)。ありえない
- 2, 3位の得点は660-700とまだありえるレベル
これでSystem Testing Phaseで落とされたらさらにげんなりだなぁ。
もう少ししたら (あと1時間) 終了の時間です。 最終結果はどうなることやら。いちおう終わりのときを待ってみることにします。 待つ間に750問題をやってみよう。
反省
- 問題の理解遅すぎ
- いきあたりばったり
- gdbとかつかってると遅すぎ
- 普段からエラーチェックをコンパイラまかせにしてコードを書いてるから、一発で通るまともなコードが書けない
- 頭の回転遅め
- 解き方が2つあって、やや迷ってしまった
- Python覚えることにしよう
- というか、いまさら
man atoi
とかしてる時点でアウトかも >_< (どのヘッダをincludeしないといけないか忘れていた)
とにかく頭の回転を速くしないといかんと痛感しました。猛烈にトレーニングしないとまずすぎです。
しかし、決められた時間内で問題を解くなんて久しぶりでした。やっぱりこういうの好きなのかも。TopCoderで鍛え直そうかな。
CodeJam Qualification Round開始
September 6th, 2006 | Published in Uncategorized
いそいそと準備のためのコードとか書いてるうちにこんな時間になってしまいました…
今から参戦してきます。結果は1時間後に。
Hikiで使えるXML-RPC API
September 5th, 2006 | Published in Uncategorized
さっきの続き。
Hiki総本山を探したのですがなさそうなので、Hikiで使えるXML-RPCのAPIをざっとリストにしておきます。Hikiのバージョンは0.8.6で。 Rubyコードを読まないひと向けの情報かも。
- wiki.getPage (page)
- wiki.getPageInfo (page)
- wiki.putPage (page, content, attributes)
- wiki.getAllPages()
/hiki/xmlrpc.rbから抽出しました。
各APIについては、あたりが詳しそうです。
CodeJam Practice : 1000点問題
September 5th, 2006 | Published in Uncategorized
いままでのことは忘れ、最後の練習問題である1000点問題に取り組んでいます。むずい!
ハノイの塔の変形なのだろうけどなぁ。むー。
他の人を見ても、あまり高得点者はいないみたい。そんなものなんかしら。