プログラミング

直方体の交差判定

"コードで世界は変えられる- ソフトウェアスペシャリスト認定コンテスト" http://www.sony.co.jp/SonyInfo/Jobs/newgrads/sus/go_for_it.html あることに気づけば簡単。1つの直方体は各座標で2つの条件式、合計6個の条件式のANDで表わされる。2つの直方…

テンプレートから派生するクラスに関するメモ

たとえば頂点をI個持つ抽象的なクラスBase をテンプレートにして、辺や三角形の面といったクラスを派生させるとする。 geo.cc ---- template <typename T, int I> class Base { public: int flag; int vtx[I]; static BinaryTree *bt;//よそで定義された二分木探索クラス Base<T,I>(i</t,i></typename>…

クラスの設計

あークラス設計をまずったかなぁ。 金属中不純物の拡散コード。やることは、不純物のいる場所から別の場所へ移る単位時間あたりの確率を計算(これ重い)、それを合計して乱数をふって不純物の一つを選んで実際に動かす。一度移動した場所は遷移確率を記憶し…

思い付いた問題

大きな自然数 n が与えられた時、これが aのb乗(a, b 共に自然数)と表される場合は a, b を全部表示するプログラムをかけ。 たとえば n=81 の時、自分の解答はまだ用意してません。 (log n)**2 程度のアルゴリズムを思いついたんで、n=10の10乗のとき一分以…