2010-01-01から1年間の記事一覧
4章に続いて5章でも、サンプルプログラムをそのまま起動させるとエラーが発生してしまうので、修正パッチを作成しました。 とはいっても、遺伝的アルゴリズムの部分だけですが…。 diff --git a/ColIntel/chapter5/optimization.py b/ColIntel/chapter5/optim…
公開されているサンプルプログラムをそのまま起動させるとエラーが発生してしまったので、 修正パッチを作成しました。 diff --git a/ColIntel/chapter4/nn.py b/ColIntel/chapter4/nn.py index 1eece9a..c19b082 100755 --- a/ColIntel/chapter4/nn.py +++ …
PRML9章(混合モデルとEM)の勉強会用スライドを公開します。 今回のスライドは出来が悪いので参考にはなるとは思えませんが、なにか使い道があればどうぞです。SlideShare上ではスライドのレイアウトが崩れていますが、一度pdfファイルをダウンロードして、手…
大学院の専攻全体で行われた輪講で、「L1正則化を導入したOnline学習手法」というタイトルで論文紹介を行ないました。 解説スライド FOBOS View more presentations from Hidekazu Oiwa このスライドを制作するにあたり、中川研究室の皆様には校正・アドバイ…
http://www.r.dl.itc.u-tokyo.ac.jp/study_ml/pukiwiki/index.php?schedule%2F2010-10-21 研究室の機械学習勉強会で、ICML2010の輪読の発表を行ったので、スライドを載せておきます。僕が担当したのは、以下の7論文です。 Online Learning Implicit Online …
8月の上旬から9月の下旬までの2ヶ月間、Preferred Infrastructure(PFI)の夏期インターンに参加してきました。 今回のインターンを振り返りつつ、ブログ記事を書きたいと思います。 PFIでのインターン PFIのインターンでは、インターン生1人1人が各自に定めた…
2010/8/6,7の2日間を用いて、「言語処理のための機械学習入門」を輪読する勉強会を開催しました。 発表者の皆様、お疲れ様でした。 以下、現時点で公開されている発表スライドを掲載します。 (発表資料に問題等あれば、TwitterのDMなどで御連絡ください。サ…
250を解いて550を考えていたら、いつの間にか朝でした。 寝落ちは初体験。 250 Badgers barger数をKに固定したときに、hunger+greed*(K-1)が小さい順にbargerをK個選択すれば、bargerがK個の時に必要な最小食料が導出されます。この最小食料をtotalFoodと比…
DP。カタラン数。境界線を超えてはいけない経路の数。 DPやカタラン数の良い演習問題。 countDiagrams class FIELDDiagrams { public: long long countDiagrams(int fieldOrder) { long long partition[45][45] = {0}; for(int i=1; i<=fieldOrder; i++){ pa…
日課消化。Unixの相対パスの記述問題。特に難しいところはありません。 というか問題文が長すぎていて読んでない…。テストケースだけで問題を類推しているので、間違いがあるかも。 makeRelative class RelativePath { public: string makeRelative(string p…
A,Bは直ぐに解法が出たけど、Cの解法が全然出なかった…。 どんな状態でも"Yes"になるのは間違いなくて、あとはappleやorangeを適当に大きい順に並べればいいのかな、とか考えてました。 A - You're Given a String... 愚直に部分文字列比較。 #include <algorithm> #inc</algorithm>…
Div1にさっさと行くことが出来たので、良しとしましょう。 今回はうさぎ祭り。 RabbitVoting 計算するだけ。 #include <algorithm> #include <iostream> #include <map> #include <numeric> #include <set> #include <sstream> #include <string> #include <vector> using namespace std; #define FOR(i,s,e) for (int i = int(</vector></string></sstream></set></numeric></map></iostream></algorithm>…
コードだけ。講義中だったのと、MediumのN+1にすべきところをNにしていて気づかなかったのが敗因。 PalindromesCount #include <algorithm> #include <iostream> #include <map> #include <numeric> #include <set> #include <sstream> #include <string> #include <vector> using namespace std; #define FOR(i,s,e) for (int </vector></string></sstream></set></numeric></map></iostream></algorithm>…
日課消化。row,seatの数の大きさに始めは戸惑うが、すでに予約されたシートが1つ埋まることで、とりうるペアシートがいくつ減るかを考えれば、特に難しくない。 #include <algorithm> #include <iostream> #include <map> #include <numeric> #include <set> #include <sstream> #include <string> #include <vector> using na</vector></string></sstream></set></numeric></map></iostream></algorithm>…
日課消化。Div1の450。DPで解いたけど、メモ化再帰の方が計算時間は短いかも。 このコードだけ見ても、やってること分かりにくいかもです。 各整数の余りの処理をDPで最適化するアルゴリズムになっています。 #include <algorithm> #include <iostream> #include <map> #include <numeric> #incl</numeric></map></iostream></algorithm>…
日課消化。頭悪いコード。たぶん、点を20も30も用意されたらアウト。 丸め誤差が発生するので、点Mと点Nの距離を求めるのにdouble(つまりsqrt)は使えない。幸い各点は-10000〜10000の格子点座標上にしか発生しないから、距離はint形式でも二乗のまま…
登録時間に間に合いませんでした。 一応、div1の250だけ解いてみました。 #include <algorithm> #include <iostream> #include <map> #include <numeric> #include <set> #include <sstream> #include <string> #include <vector> using namespace std; #define FOR(i,s,e) for (int i = int(s); i != int(e); i++) #define FOR</vector></string></sstream></set></numeric></map></iostream></algorithm>…
日課消化。始めから綺麗にコードが書けるようになりたい。 問題自体は難しくない。実装が面倒なだけ。 #include <algorithm> #include <iostream> #include <map> #include <numeric> #include <set> #include <sstream> #include <string> #include <vector> using namespace std; #define FOR(i,s,e) for (int i = int(s); i </vector></string></sstream></set></numeric></map></iostream></algorithm>…
日課消化。ちょっと手こずった。 2通りの解法があった時にどちらを選択すべきか、の判断がまだまだ甘い。 class TheTriangleBothDivs { private: bool check(string a, string b){ for(unsigned int i=0; i
日課消化。いつもこういう綺麗な解法が見つかればいいんですけどね。 #include <algorithm> #include <iostream> #include <map> #include <numeric> #include <set> #include <sstream> #include <string> #include <vector> using namespace std; #define FOR(i,s,e) for (int i = int(s); i != int(e); i++) #define FORIT(i</vector></string></sstream></set></numeric></map></iostream></algorithm>…
途中から初参加。 Noldbach problem 解もprimerじゃなきゃいけないって条件を見落としていて、何故ExampleBがNoになるのか終了ギリギリまで分からなかった。 英語読解の問題だなー。 #include <algorithm> #include <iostream> #include <map> #include <numeric> #include <set> #include <sstream> #include <string></string></sstream></set></numeric></map></iostream></algorithm>…
日課消化。部分文字列比較アルゴリズムの良い勉強になりました。 class DigitMultiples { private: struct node { int value; node *next; node(int value, node *next) : value(value), next(next) { } }; #define index_of(as, x) \ distance(as.begin(), …
日課消化。 かなり汚いコードだけど、課題に即しているって意味では分かりやすくなっているのかも。 unsigned intのまま、0より小さくなる場合とか扱えるようになるとよりいいんだけどねぇ…。上手い方法ないものか。 class SMS { private: bool checkvowel(c…
250/500は簡単。 1000はランダムウォークの問題。メモリや計算時間を考慮すると、難解。というか解き方分からないよ…。 250/ColorfulTilesEasy 1列に赤・緑・青・緑のいずれかの色のついたタイルが並んでいる。 隣あったタイルが同じ色とならないようにする…
コードのみ。問題解説めんどい。 本当は、faceはenumを使ってEWNSを分けるべき。けど、これもめんどかった。 class CubeWalking { private: struct robot{ int col; int row; int face; }; robot rob; void stringcheck(char ch){ switch(ch){ case 'L': rob…
今さらですが、解答だけあっぷろーど。 PrimeContainers 与えられた数字Nを1になるまで、繰り返し2で割る。余りが出たら切り捨てる。 計算中にいくつ素数が現れるか。 class PrimeContainers { public: int containerSize(int N) { int count = 0; for(; N!=…
単純にQuicksortのpivot選択をランダムにしただけ。 これで理論上は、O(nlogn)になります。 /* * Rquicksort.h * * Created on: 2010/05/22 */ #include<vector> #include<cstdlib> using namespace std; template<class type> class Rquicksort{ private: void swap(vector<type>& nums, int i,</type></class></cstdlib></vector>…