2014-04-01から1ヶ月間の記事一覧
規定の抽象クラスBがあって、これを継承してクラスCがある。このとき、基底クラスBのメソッドfuncをクラスCで公開したいが、部分的な処理だけを派生クラスで定義し、funcの外枠はBで定義したい例。 #include <iostream> using namespace std; template <typename T, typename ...Args> class B { publ</typename></iostream>…
事案 遺伝的プログラミングを実装したい 条件をクラスで定義し、それに基づいて構文木を出力する ノードは条件、行動の2つからできているが、後々拡張する可能性がある 想定する実装 template <typename T> class GPCase { // ランダム生成 // 交叉 crossover // 逆位 in</typename>…
再帰的にその都度乱数を生成してランダムな木を作るテスト。遺伝的プログラミングの最初の個体生成に使うために実験したものです。もっと良いアルゴリズムがあるはずですがとりあえずこれで行きましょう。 namespace { void rec(int size, int c = 0) { std:…
C/C++ではgotoが使える。とても自由なこの制御構文は、2重のforループを抜けるとき大変役立つ。 #include <iostream> using namespace std; void func() { cout << "In func()" << endl; goto exit; cout << "skip" << endl; exit: cout << "End of func()" << endl; }</iostream>…
そういえばクイックソートを書いたことがなかった(気がする)。 ピボットを選択する。(ここでは要素のまんなかの場所を指定した。) ピボットより大きいものを右、小さいものを左に並べる その大きいもの、小さいものの中で1.を繰り返す 問題は、ある値を境に…