trunk:4847はコンパイルが通った。
Jython 2.3a0+ (trunk:4847, 7 4 2008, 20:27:46)
[Java HotSpot(TM) Client VM (Apple Inc.)] on java1.5.0_13
Type "help", "copyright", "credits" or "license" for more information.
これで遊べる。
trunk:4847はコンパイルが通った。
Jython 2.3a0+ (trunk:4847, 7 4 2008, 20:27:46)
[Java HotSpot(TM) Client VM (Apple Inc.)] on java1.5.0_13
Type "help", "copyright", "credits" or "license" for more information.
これで遊べる。
03072008 chemoinformatics R
一通り読んだ。分かりやすくてお薦めの一冊。
まぁ、なんというか僕はクラスタリングとかPLS,PCRなんかのほうに偏っていて検定とか苦手(というよりもあまり使わない)のでこういったタイプの本は勉強するによいし、手元においておくと何かと便利(なはず)
とりあえず一巡させると必ず一つはサラリーが求まるから、全部求まるまでループ。 他の人の解答見てmemsetの使い方を覚えた。
class CorporationSalary {
long long salary[50];
bool isdetermind(int numbers){
for(int i =0;i<numbers;i++) if(salary[i] == 0) return false;
return true;
}
public:
long long totalSalary(vector <string> relations) {
long long total = 0;
int num = relations.size();
for(int i=0;i<num;i++) salary[i] = 0;
// memset(salary,0,sizeof(salary));
int i = 0;
while(!isdetermind(num)){
i == num-1 ? i=0 : ++i;
if( salary[i] > 0) continue;
if(relations[i].find('Y') == string::npos) {
salary[i] = 1;
continue;
}
long long r = 0;
int flag = 0;
for(int j=0;j<relations[i].size();j++){
if(relations[i][j] == 'Y') {
salary[j] > 0 ? r += salary[j] : flag++;
}
}
if(flag == 0) salary[i] = r;
}
for(int k=0;k<num;k++) total += salary[k];
return total;
}
};
最初は再帰で考えて
class MarblesInABag {
double gp(int rc, int bc){
if(rc > bc) return (double) 0;
if(rc == 0) return (double) 1;
if(rc == 1 && bc == 0) return (double) 0;
return (double) rc /(rc+bc) * gp(rc-1,bc-1)
+ (double) bc/(rc+bc) * gp(rc, bc-2);
}
public:
double getProbability(int redCount, int blueCount) {
return gp(redCount,blueCount);
}
};
でこれをメモ化すればいいと思ってたんだけど、それだと、4000*4000の配列を用意しないといけないのでダメだということに気づいた。
というよりここがスタートでO(N^2)をO(N)にするというのが問題の意図だったらしい。
トップのヒトの解答をみると2*5000の配列にしていて赤が一個の時の確率から始まって赤の数を増やしながら、表を更新していた。
ここでのループで解く場合というやりかたになるのかな。
01072008 life
ビショップの下巻は買うとして、
このアルゴリズムデザインというのが気になる。
さらに、これも気になる。
短冊に願い事を書いてみようかな
30062008 youtube
あれ、バタ子とおむすびってできてんだっけ?
娘と第一話から最終話まで一気にみた。 ようわからんけど、娘は「恐いアンパンマンだー」大喜びしていた。
というわけで、僕のmacbookがアンパンマン再生機にされかけておる。
30062008 chemoinformatics jython opsin
jython+web.pyがお手軽で、ちょっとしたことをやるならいい感じ。
jythonのosモジュールにはfstatがないのでtrunkのSimpleHTTPServerの静的ファイルの転送ができない。そのため、2.2.1のSimpleHTTPServerと入れ替えた。
import java.io.StringReader as StringReader
import org.openscience.cdk.interfaces.IMolecule
import org.openscience.cdk.io.CMLReader as CMLReader
import org.openscience.cdk.ChemFile as ChemFile
import org.openscience.cdk.layout.StructureDiagramGenerator as StructureDiagramGenerator
import uk.ac.cam.ch.wwmm.opsin as opsin
import net.sf.structure.cdk.util.ImageKit as ImageKit
import web
urls = (
'/(.*)', 'img2d'
)
class img2d:
def GET(self, name):
cml = opsin.NameToStructure().parseToCML(name).toXML()
str_reader = StringReader(cml);
cmlr = CMLReader()
cmlr.setReader(str_reader)
chem = cmlr.read(ChemFile());
mol = chem.getChemSequence(0).getChemModel(0).getSetOfMolecules().getMolecule(0)
sdg = StructureDiagramGenerator()
sdg.setMolecule(mol)
sdg.generateCoordinates()
mol = sdg.getMolecule()
ImageKit.writePNG(mol, 300, 300, "./static/test.png")
print '<h1>' + name + '</h1>' + '<img src="/static/test.png" />'
if __name__ == "__main__": web.run(urls, globals())
http://localhost:8080/(2,3-diethyl-benzyl)-isobutanolというURLにアクセスすると、IUPACを2次元構造に変換していい感じに描画して表示してくれる。

ImageKitが必ずファイルに出力するのでテンポラリのファイルを作ればいいのだけど、とりあえず動く事を確認したかったので決めうちの名前で。
29062008 life
なんか最近釣りに行かなくなったんだけど、昨日は久々にボート釣りに行ってきた。 ボート釣りはやっぱ楽しいのお。

5時半とちょっと遅めに漕ぎだして、10時くらいまで。雨が20%位という予報だったけど、ふらないどころか晴れてきた。

キスはまぁまぁ釣れて満足。

沖のほうまで漕いでいくと結構いろいろ釣れて楽しい。後半アナハゼばかりで飽きたけど。
あと黄色いひげのある赤い魚を初めて釣った。アカイオジサンと命名したけど、やっぱおじさんと呼ばれているらしかった。正式名はヒメジというそうだ。
29062008 chemoinformatics life
かなり消化不良だが読み終えた。
一応、僕はデザイン関係ではなくて、製薬の企業でデータマイニングとかの研究がメイン。マイニングするためのデータが欲しいという理由で、webのシステム組んだり、データを集約するための仕組みをあれこれ考えたりとかしている(今は)。だから、ターゲットとしている読者からは離れているかもしれない。
概要は正直辛かった。バックグラウンドが乏しいので、「誰の何とかが提唱したなんとかは」みたいに書かれても、なかなか自分の中でつながっていく感がなかった。ある程度分かっているヒトが読むとつながっていく感が感じられて面白いんだろうなとは思ったんだけど。第一部の概要は読んでて辛かったので途中で投げ出した、二週間くらい。他の本(ロベールとか)読んでて読むものがなくなってまた読み始めたって感じだった。
で、実践編はなかなか面白かった。ポストイットを張りながら読んだ。こっちを読んで考えながら一部の概論に立ち戻るという読み方が正解だったかなと、今は思う。
結局ペルソナっていうのは、TDDでのテストとかBDDの仕様に近いもんなのかなと。安心して戻ってこられるよりどころみたいな。
昔考えた人工無脳ケミストもそういった観点で捉え直せば、ケモインフォマティクスのためのアジャイルプロセス用ツールとして使えるかもしれんなと思った。
参考文献の中でおもしろそうなのを読んでいこうかな。