ランダムな木
再帰的にその都度乱数を生成してランダムな木を作るテスト。遺伝的プログラミングの最初の個体生成に使うために実験したものです。もっと良いアルゴリズムがあるはずですがとりあえずこれで行きましょう。
namespace { void rec(int size, int c = 0) { std::string tab = ""; for(int i = 0; i < c; ++i) { tab += "\t"; } if(size <= 0) { std::cout << tab << "*" << std::endl; return; } int length = std::rand() % size; std::cout << length << std::endl; std::cout << tab << "L:" << std::endl; rec(length, c + 1); std::cout << tab << "R:" << std::endl; rec(size - length - 1, c + 1); } }