C++

C++の多倍長整数クラス

Google Code Jamの関係で、多倍長演算クラスを作ってみた。 JavaのBigIntegerと比べて格段に見劣りするし、確実にgmpxxを使った方がいいし、自分は本番Python使って全く困らなかったけど、それでもライブラリなしでコピペしてC++で解きたいときに。 constと…

Cabocha新インターフェース用のC++サンプルコード

Cabocha 0.6 pre系列はインターフェースが変わったので、取得できるものを全部列挙する感じで組んでみた。 #include <iostream> #include <string> #include <cabocha.h> using namespace std; //How to compile? //g++ -O2 `cabocha-config --cflags` cabochasample.cpp -o cabochasample</cabocha.h></string></iostream>…

中央値乱択アルゴリズム

O(n)のはず。 結構昔に作ったものだけど、ブログにメモとして載せとく。 確か、アルゴリズムデザインって本を参照したはず。 #include <iostream> #include <vector> #include <ctime> #include <cstdlib> using namespace std; int select(vector<int> S, int k) { int n = S.size(); int i = rand(</int></cstdlib></ctime></vector></iostream>…

ページランクのメモリに乗る場合の実装

チョイ暇だったので、30分ぐらいで作ってみた。本当はディスク使うからこんな風にstlのvector使ってやればいいってもんじゃないんだけど・・・。 検証してないから間違ってるかもしれない。 詳しい解説は・・・後で書くかもしれない。 実装的にはTrustRankと…

liboctaveで行列演算するための準備

C++

octaveの資料は結構あるけど、liboctaveをC++で使う資料はちょっと見た限り少なかったので、今後抵抗なく使ってくための準備を使用かなと思っていたら・・・すばらしいサイトを見つけてしまった。 特に liboctave の基礎:コンパイルと型と基本演算 - akihik…

liboctaveをCygwinで使う。

C++

とりあえず、liboctaveを使って // octave_test.cpp #include <iostream> #include <octave/config.h> #include <octave/Matrix.h> using namespace std; int main() { Matrix a(2, 2, 1.0); cout << a << endl; return 0; } のコードをコンパイルすることを目標にする。 ちなみにg++でコンパイルするには</octave/matrix.h></octave/config.h></iostream>…

機械学習アルゴリズム実装用行列計算ライブラリ

C++

いま大学の研究室で機械学習アルゴリズムを勉強がてら、実装してみよう企画がある。基本的には実用的な高速なのを作るというよりも、コードがシンプルなものを作るのが目的。 で、使う言語はC++で固まりそうなのだが、困っているのが行列演算とかの数学系の…

valarray

最近サポートベクタマシンや、クラスタリングを適当に組んだりするときに、3次元以上の点を表すのにちょうどいいデータ構造として、valarrayを使っていた。valarrayは算術演算が定義された配列みたいなイメージで雰囲気で使っていたのだが、初期化周りのこと…