SMS

日課消化。 かなり汚いコードだけど、課題に即しているって意味では分かりやすくなっているのかも。 unsigned intのまま、0より小さくなる場合とか扱えるようになるとよりいいんだけどねぇ…。上手い方法ないものか。 class SMS { private: bool checkvowel(c…

SRM472

250/500は簡単。 1000はランダムウォークの問題。メモリや計算時間を考慮すると、難解。というか解き方分からないよ…。 250/ColorfulTilesEasy 1列に赤・緑・青・緑のいずれかの色のついたタイルが並んでいる。 隣あったタイルが同じ色とならないようにする…

cubewalking

コードのみ。問題解説めんどい。 本当は、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…

Member SRM 471

今さらですが、解答だけあっぷろーど。 PrimeContainers 与えられた数字Nを1になるまで、繰り返し2で割る。余りが出たら切り捨てる。 計算中にいくつ素数が現れるか。 class PrimeContainers { public: int containerSize(int N) { int count = 0; for(; N!=…

Randomized Quicksort

単純に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>…

Googleページランクの数理

ニコニコ動画で面白い動画があるのに、思った以上に再生数が伸びないのでちょっと紹介してみる。 Googleページランクの数理的解説。 線形代数や確率論の基礎的な知識さえあれば、特にムズカシイと感じることはないと思います。 個人的にはGoogleページランク…

Computing Curricula(Computer Scienceを教える大学学部レベルで展開するべき科目)

コンピュータサイエンス入門より。1.離散構造(Discrete Structures) 集合論、論理、証明法、計算の基礎、グラフ理論、組み合わせ論、確率論など。 データ構造とアルゴリズム、形式的証明。 2.プログラミング基礎(Programming Fundamentals) プログラミン…

OSI基本参照モデル(Open Systems Interconnection basic reference model)

1.物理層(physical layer) 電機・機会上のプロトコルを規定。コネクタ・ケーブルの形や電子信号内容を規定。 2.データリンク層(data link layer) 実際に接続されている端末間のデータ送受信規定。ビット単位での誤りの訂正手順の規定。 3.ネットワーク…